Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

MySQL pretraga sa implementiranim nizom

[es] :: PHP :: MySQL pretraga sa implementiranim nizom

[ Pregleda: 1347 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zlatko
Zlatko Mićić
Užice

Član broj: 907
Poruke: 100
*.adslplus.ch.

Sajt: www.ue.co.rs


Profil

icon MySQL pretraga sa implementiranim nizom20.05.2011. u 11:47 - pre 157 meseci
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?
SlaveNewWorld
 
Odgovor na temu

Br@nkoR
http://localhost

Član broj: 2597
Poruke: 1603

Sajt: localhost


+23 Profil

icon Re: MySQL pretraga sa implementiranim nizom20.05.2011. u 12:18 - pre 157 meseci
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.
Banned - Not available
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: MySQL pretraga sa implementiranim nizom20.05.2011. u 13:04 - pre 157 meseci
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)
 
Odgovor na temu

zlatko
Zlatko Mićić
Užice

Član broj: 907
Poruke: 100
*.adslplus.ch.

Sajt: www.ue.co.rs


Profil

icon Re: MySQL pretraga sa implementiranim nizom20.05.2011. u 14:42 - pre 157 meseci
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. :)
SlaveNewWorld
 
Odgovor na temu

[es] :: PHP :: MySQL pretraga sa implementiranim nizom

[ Pregleda: 1347 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.