Autor Zpráva
pajadvorak
Profil
Nikde jsem pořádně nenašel, zda lze výsledek relevantně seřadit ještě na straně MySQL. To znamená, že hledám ve sloupci název, kód, informace. Na konci seřadím dle názvu (order by). A teď bych chtěl, aby řádky, které obsahují hledaný výraz v názvu byli řazeny nejdříve a potom vše ostatní. Děkuji za jakoukoliv radu.
Kajman
Profil
V řazení můžete použít i výraz. Např., že je dané slovo v titulku.
pajadvorak
Profil
Kajman:

Prosím, jak bych měl níže uvedený dotaz doplnit, aby to správně chodilo. Něco jsem zkoušel, ale nejde mi to. Děkuji

SELECT * FROM tabulka WHERE (nazev LIKE '%hledany_vyraz_1%' OR kod LIKE '%hledany_vyraz_1%' OR informace LIKE '%hledany_vyraz_1%' OR rozsirene_info LIKE '%hledany_vyraz_1%') AND (nazev LIKE '%hledany_vyraz_2%' OR kod LIKE '%hledany_vyraz_2%' OR informace LIKE '%hledany_vyraz_2%' OR rozsirene_info LIKE '%hledany_vyraz_2%')  ORDER BY nazev LIMIT 0, 15
Kajman
Profil
např.

ORDER BY ((nazev LIKE '%hledany_vyraz_1%') + (nazev LIKE '%hledany_vyraz_2%')) DESC

Edit: přidány závorky pro další generace
pajadvorak
Profil
Kajman:
To právě nefunguje. Když tam je to "+", tak to hlásí chybu. Když tam nechám jen ORDER BY nazev LIKE '%hledany_vyraz_1%' DESC, tak to správně neseřadí.
Kajman
Profil
Zkuste to zazávorkovat.
pajadvorak
Profil
Kajman:
zdá se, že to již něco dělá... :-)
děkuji

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