Autor Zpráva
jakubk0c
Profil
Dobrý den, měl bych na Vás prosbu zda by jste mi pomohli s jedním problémem.
Potřebuju udělat příkaz:

SELECT * FROM adresa_db WHERE ?

Kde v DB je ve sloupci adresa_db uložená hodnota : Praha, Václavské náměstí 1024
nebo jaká koliv jiná adresa.

A já bych potřeboval, když uživatel zadá třeba „Praha“ nebo „Václavské náměstí“ nebo „Vaclavske namesti“ aby to našlo hodnotu výše v DB (Praha, Václavské náměstí 1024) a provedl se SELECT.

Předem moc děkuji za Vaší pomoc.
Ikki
Profil
SELECT * FROM adresa_db WHERE x like %?%
jakubk0c
Profil
Ikki:
To vážně bude platit pro všechny případy?
Ikki
Profil
%hodnota% vyhledává všechno co obsahuje danou část, tedy příkladem může být:
Záznam: Praha, Náměstí 1
Vyhledáno: Pra

Shoda je tedy v obou případech "Pra" a tak se získá záznam, nebo více záznamů obsahující danou shodu.
Kajman
Profil
jakubk0c:
To vážně bude platit pro všechny případy?
Nebude.

Největší problém je hledání bez diakritiky. To se v mysql často řeší druhým sloupcem, kde je již diakritika odstraněná. Tedy v tabulce bude sloupec i hodnotou
Praha, Václavské náměstí 1024
i sloupec s hodnotou
praha, vaclavske namesti 1024

Při hledání se pak stejně odebere diakritika z hledaného výrazu a příkaz pak bude např.
select * from `tabulka` where `sloupec_bez_diakritiky` like '%vaclavske namesti%'
jakubk0c
Profil
Kajman:
Jo todle mě nenapdalo to by bylo super. A když třeba dá uživatel do vyhledávače: Náměstí najde to taky nebo Václavské atd.? Jestli jo, tak to řeší přesně můj problém.
Ikki
Profil
V případě %% to najde cokoli, co má něco společného. Pokud budeš mít záznam "vaclavske namesti" a "pepovo namesti", tak v případě, že bude dotyčný vyhledávat "namesti", tak se vyhledají oba zmíněné záznamy.
jakubk0c
Profil
Ikki:
Skvěle děkuju moc vyzkouším :-).

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