PHP match_against nem talál meg karakterláncot, csak ha 100%-ig egyezik a találat. Miért?
Érdekes, mert a többi adatbázismezőben működik, akkor is megtalálja a rekordot, ha csak egy részét írom be. Egy bizonyos mezőben (nevezzük mondjuk cikkszam-nak) azonban csak akkor, ha teljes egyezés van. A mezők típusa ugyanolyan (varchar).
Kódrészlet:
...FROM termekek WHERE match(termek_nev,tipus_nev,cimkek,cikkszam) against ('".$searchterm."' IN BOOLEAN MODE)
Az összesben működik a %LIKE%-szerű keresés, csak az utolsóban nem.
Rájöttem, mi a probléma:
*-ot használod a keresett kifejezés végén, tehát ha a keresett szó "alma", akkor a "lma" keresés nem ad ki semmit, ellenben az "alm" az igen.
Ahogy nézem a dokumentációt, erre nincs is lehetőség ebben a fajta keresésben.
Az egyetlen megoldás, ha nincs találat, akkor meghívom ugyanazt LIKE '%"alma"' szintaxissal.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!