Autor Zpráva
Sylar
Profil
Zdravím,
lámu s tím hlavu celý den a už opravdu nevím, kde by mohla být chyba. U tohoto dotazu mi mysql háže chybu Can't find FULLTEXT index matching the column list. U obou dvou tabulek mám odpovídající indexy nad sloupci nazev, description, kategorie.

SELECT DISTINCT SQL_CALC_FOUND_ROWS
id, nazev, description
FROM
b_shops_produkty_db db
WHERE
(MATCH(db.kategorie) AGAINST('google' IN BOOLEAN MODE) OR
MATCH(db.description) AGAINST('google' IN BOOLEAN MODE) OR
MATCH(db.nazev) AGAINST('google' IN BOOLEAN MODE) )
UNION
SELECT DISTINCT
p.id, p.nazev, p.description
FROM
b_shops_produkty p, b_shops s
WHERE
(MATCH(p.kategorie) AGAINST('google' IN BOOLEAN MODE) OR
MATCH(p.description) AGAINST('google' IN BOOLEAN MODE) OR
MATCH(p.nazev) AGAINST('google' IN BOOLEAN MODE) ) AND
p.shop = s.id
ORDER BY
s.payed DESC, clicked DESC,
(1 * MATCH(p.kategorie) AGAINST('google*')) +
(2 * MATCH(p.description) AGAINST('google*')) +
(3 * MATCH(p.nazev) AGAINST('google*')) DESC
LIMIT 0, 10
Kajman
Profil
Zkuste ten výpočet pro řazení dát jako další vypisovaný sloupeček s nějakým aliasem a řadit podle něho. Případně selecty uzávorkujte, má-li se řazení a limit vztahovat až na druhý dotaz.
Sylar
Profil
Kajman:
díky, máš pravdu ... (výpočet) AS relevance a ORDER BY relevance DESC funguje, i když mi to moc není jasné, mělo by přeci fungovat obojí :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0