Autor Zpráva
Petr Svetr
Profil
Mam takovyto dotaz:

SELECT `id`,`title`,`description`,`type` FROM medias WHERE MATCH(title) AGAINST ('článek dovolená' IN BOOLEAN MODE) OR MATCH(description) AGAINST ('článek dovolená' IN BOOLEAN MODE) ORDER BY 5 * MATCH(title) AGAINST ('článek dovolená') + MATCH(description) AGAINST ('článek dovolená') AND `publication` = 1 AND `positions` LIKE '%_3%'

MySQL vrati vysledky dle klauzule MATCH .. AGAINST, ale bez ohledu na to, ze chci vybirat pouze z radku, kde polozka 'publication' je 1 a positions je '%_3%' . Nejsem v tomhle moc kovanej ale myslim ze problem je v tom OR, jenze to tam potrebuji. Zkusil jsem pridat (po selsku :) zavorky kolem porovnavani, ale bez uspechu (koncilo chybou).

Poradite nekdo prosim?
nightfish
Profil
AND `publication` = 1 AND `positions` LIKE '%_3%'
máte až v ORDER BY, správně má být ve WHERE
takže

SELECT `id`,`title`,`description`,`type` FROM medias
WHERE `publication` = 1
AND `positions` LIKE '%_3%'
AND (MATCH(title) AGAINST ('článek dovolená' IN BOOLEAN MODE)
OR MATCH(description) AGAINST ('článek dovolená' IN BOOLEAN MODE))
ORDER BY 5 * MATCH(title) AGAINST ('článek dovolená') + MATCH(description) AGAINST ('článek dovolená') 
Petr Svetr
Profil
diky diky diky
Toto téma je uzamčeno. Odpověď nelze zaslat.

0