Autor | Zpráva | ||
---|---|---|---|
PetraPP Profil |
Potřebuji hledat pouze v jednom daném zboží, ale nic to nenajde. Přitom hledané slovo je přímo obsaženo v textu. WTF? :) Popis v mySQL mám bez diakritiky a samohlásek pro dosažení lepšího efektu hledání.
SELECT id FROM zbozi WHERE popis LIKE 'ryzovar%' AND id='8167' popis zboží s id=8167 obsahuje text: sencor srm 1500wh ryzovar specialn hrnec na varen ryz pracuj na princip varen v par objem 15 l pro priprav 1200 g ryzepln automatick provoz vhodn pro priprav vsech druh ryz vcetn ryz na sush automatick vypnut po dovaren a prepnut na funkc keep warm uchov ryz teplo az 6 hodin sklenen poklick s otvorem pro unik prebytecn par praktick rukojet po obo stranach snadn cisten vyjimateln vnitrn nadob s neprilnavym povrchem sveteln kontrolk provoz a udrzovan teplot protiskluzov nozk snadn skladovan odpojiteln sitov kabel dodavan prislusenstv specialn spachtl na ryz odmerk na ryz a vod |
||
Alphard Profil |
#2 · Zasláno: 17. 11. 2014, 12:43:59
Nechybí náhodou
% ještě na začátku hledaného výrazu? Like bere ten řetězec jako celek, ne po slovech.
|
||
PetraPP Profil |
#3 · Zasláno: 17. 11. 2014, 13:02:25
Já myslela, že znak % určuje umístění hledané slova v textu.
test% -> test, testovaný, testující %test% -> netestovaný |
||
Tori Profil |
#4 · Zasláno: 17. 11. 2014, 13:38:07
PetraPP:
Jestli chcete rozlišovat slova, použijte fulltextové vyhledávání. (Šlo by to i s LIKE, ale bude to hrozně pomalé.) |
||
PetraPP Profil |
#5 · Zasláno: 17. 11. 2014, 14:50:35
Tak že na fulltextové vyhledávání musím mySQL upravit na:
FULLTEXT KEY `popis` (`popis`) mySQL dotaz by pak tedy fungoval jako SLOVO% ? SELECT id FROM zbozi WHERE popis LIKE 'ryzovar%' AND id='8167' |
||
Tori Profil |
#6 · Zasláno: 17. 11. 2014, 14:54:15
|
||
PetraPP Profil |
Chápu, tak že jsem použila:
SELECT id FROM zbozi WHERE MATCH(popis) AGAINST('damsk trick') Našlo mně to: trick s kratkym rukavem letn top do pas
Funguje to :) |
||
Časová prodleva: 9 let
|
0