Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 1.970 pregleda

Najnovija ↓

MySQL pretraga sa implementiranim nizom 20.05.2011. u 12:47 · pre 188 meseci #1
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?
Potpis
SlaveNewWorld
Re: MySQL pretraga sa implementiranim nizom 20.05.2011. u 13:18 · pre 188 meseci #2
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.
Potpis
Banned - Not available
Re: MySQL pretraga sa implementiranim nizom 20.05.2011. u 14:04 · pre 188 meseci #3
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)
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: MySQL pretraga sa implementiranim nizom 20.05.2011. u 15:42 · pre 188 meseci #4
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. :)
Potpis
SlaveNewWorld
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme