Autor Zpráva
hugo123
Profil *
Ahojte,

potreboval by som vediet, ako najlepsie spravit nieco taketo:

SELECT * from tabulka WHERE nazov LIKE '% IN(moznost1, moznost2, moznost3)%'

Rozumiete? Ako najlepsie spravit nieco taketo?

Vopred dakujem pekne.
tazatel
Profil *
LIKE '%neco1%' OR LIKE '%neco2%' OR LIKE '%neco3%'



nebo spíš
SELECT * from tabulka WHERE nazov LIKE '%neco1%' OR nazov LIKE '%neco2%' OR nazov LIKE '%neco3%'
Tori
Profil
hugo123:
Jestli potřebujete vyhledávat takovýmhle způsobem, tak by bylo rychlejší použít buď fulltext.index + vyhledávání, anebo oddělit jednotlivé hodnoty do další tabulky s vazbou na tuto (podle toho, jaká přesně data tam jsou).
hugo123
Profil *
tazatel:
No hej, takto to viem aj ja, ale nepride mi to ako elegantne riesenie.

Tori:
Ako to viem docielit ten fulltext prosim? Nejaky postup step by step?

Bol by som Vam velmi vdacny! :)
Tori
Profil
hugo123:
A jaká data přesně tam jsou? Samostatné hodnoty oddělené čárkou/mezerou anebo nějaký souvislý text?
hugo123
Profil *
Tori:
Su tam slovenske mesta odelenne ciarkou, napriklad: Bratislava, Kosice, Presov
(ano viem, ze to nie je rozumne takto, ale proste to tak je).

No a teraz pride select, ze chcem vypisat vsetky riadky pre napr. iba Bratislava a Presov

Tak co navrhujes, aky select?

Vopred dakujem pekne.
Tori
Profil
Je to chybný návrh DB (viz FAQ). Pokud můžete, změňte ho a můžete pracovat s joinem a podstatně rychlejší podmínkou WHERE sloupec IN ('KE', 'Blava'). Pokud nemůžete měnit schéma DB, odstraňte mezery za čárkami (aby byly jednotlivé hodnoty odděleny jen čárkou) a použijte funkci FIND_IN_SET, to je rychlejší než reguláry.

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