ugrás a tartalomhoz

Keresés MySQL táblában szótöredékre

Anonymous · 2006. Már. 26. (V), 19.28
Üdv!

Olyat szeretnék kérdezni h:
azt h lehetr megcsinálni h van egy mysql adatbázisom: base mondjuk egy táblám benne: table és 2 oszlopom: name, value .

Ez eddig ok és ebbe bele is tok irni meg minden de ezt szótár szereűségre szeregném használni, tehát értek mindent csak azt nem h h lehet benne keresni
pl.:
name: Fiatal farkasok
value: Fiatal farkast láttak a közeli erdőségben és ...

beirom a keresőbe h: farkas
és akkor kijön a name h: fiatal farkasok
és a value: Fiatal farkast láttak a közeli erdőségben és ...

???

Előre is kössz...
 
1

LIKE

-zsolti- · 2006. Már. 26. (V), 19.40
$query = "SELECT mező FROM tábla WHERE mező LIKE '%$szótöredék%' OR mező2 LIKE '%$szótöredék%'";
A LIKE-ban a változó körül a % jel biztosítja, hogy minden rekordot visszakapj, amiben szerepel a szótöredék. Ha pl. az elejéről lehagyod a % jelet, akkor csak az azzal KEZDŐDŐ szavakat találja meg.

Egyébként próbálj meg értelmesen, magyarul fogalmazni, mert én is írhatom rövidítve a szavakat, csak nem biztos, hogy érteni fogod.
2

%-kal kezdődő minta

Hodicska Gergely · 2006. Már. 26. (V), 21.28
Annyit hozzáfűznék, hogy ha csak teheted, akkor a fenti dolgot kerüld, különben az DBMS nem fogja tudni a mezőn esetlegesen lévő indexeket, ami adott esetben nem fog jól esni a szervernek.


Felhő
4

Ha a "jól esés"-ben...

Pal_ur · 2006. Már. 27. (H), 09.16
... arra gondolsz, hogy nagyobb adatbázisnál rendesen megizzasztja a szervert. A
LIKE
-os keresés (különösen, amikor az nem a mező elejétől indul, hanem ismeretlen számú karaktert ki kell hagyni) kevéssé erőforrás-hatékony.

(Bocs, ha csak nekem nem volt világos...)
3

Fulltext index

virág · 2006. Már. 27. (H), 07.46
Szia,

ha sok adatod van, akkor érdemes a "fulltext" indexelést használni. Utólagosan is átalakíthatod a tábláid kívánt (varchar, text típusú) mezőit ilyenre. Itt találsz példákat a használatára. Én ezt szoktam használni akkor ha sok adat van (nem a sorok száma számít elsősorban és kizárólag, hanem, hogy mekkorák a felvitt szövegek).