[ zlatko @ 20.05.2011. 11:47 ] @
Imam MySql tabelu sa nazivima proizvoda. Neki od proizvoda na početku naziva sadrže znakove ili artikle: a, an, the, der, die, das, la, les... Primer:

"History"
An Apple
The Doors
Die Frau

Kako se korisnik ne bi zamarao sa artiklima, zagradama, navodnicima i sličnim prefiksima, koristim sledeći upit
Code:
SELECT name
FROM tabela
where 
name LIKE '" . $queryString . "%'
or
name LIKE '"" . $queryString . "%'
or
name LIKE 'The " . $queryString . "%'
or
name LIKE 'La " . $queryString . "%'
or
name LIKE 'Les " . $queryString . "%'
...


Postoji li način da navodnike, artikle i ostale prefikse ubacim u jedan niz kako bi ovaj kod izgledao kraće, urednije i možda pravilnije i kako bih ga kasnije lakše ažurirao?
[ Br@nkoR @ 20.05.2011. 12:18 ] @
Hmm.. ali zar ne može
Code:
SELECT name
FROM tabela
WHERE 
name LIKE '%" . $queryString . "%'


Možda nešto sa REGEXP ali pitanje je da li bi to bilo brže, mada neko sa više iskustva će to reći.
[ Aleksandar Ružičić @ 20.05.2011. 13:04 ] @
Moj savet ti je da koristis fulltext search, ukoliko ti je tabela myisam. Pretraga sa fulltext indexom bi trebala da bude brza od LIKE-a sa % na pocetku i na kraju i jos sa ubacenom or-om (u vecini slucajeva kada se koristi OR operator mysql ne koristi indexe, a to isto vazi i kada se koristi LIKE a % je na pocetku stringa)
[ zlatko @ 20.05.2011. 14:42 ] @
Citat:
Br@nkoR: Hmm.. ali zar ne može
Code:
SELECT name
FROM tabela
WHERE 
name LIKE '%" . $queryString . "%'


Možda nešto sa REGEXP ali pitanje je da li bi to bilo brže, mada neko sa više iskustva će to reći.

Možda bi u nekom drugom slučaju moglo, ali ne i u ovom.

Rezultati pretrage se ispisuju u "autosugestivnoj listi" sličnoj (skoro identičnoj) kao na Facebook-ovoj pretrazi.
Uzmimo da postoje proizvodi "čokolada" i "bela čokolada". Ako korisnik ukuca slova "čokola", u tvom slučaju, u listi bi mu izašle obe opcije, što ja ne želim. Isto tako bi trebao da napravim sve da radi što je moguće brže, jer ta tabela ima preko milion artikala.

Citat:
Aleksandar Ružičić: Moj savet ti je da koristis fulltext search, ukoliko ti je tabela myisam. Pretraga sa fulltext indexom bi trebala da bude brza od LIKE-a sa % na pocetku i na kraju i jos sa ubacenom or-om (u vecini slucajeva kada se koristi OR operator mysql ne koristi indexe, a to isto vazi i kada se koristi LIKE a % je na pocetku stringa)

Hvala na predlogu. Jeste myisam, samo nisam nikad ranije koristio fulltext search... evo prilike da naučim nešto novo. :)