RoR, Mysql e ricerca con LIKE


#1

Buongiorno lista.
Devo dare agli utenti la possibilità di cercare dei dati partendo da una
parte di essi, per esempio se si vuole cercare “giovanni” dovrà essere
possibile inserire “giov” o “van”; naturalmente come risultato si
avranno tutte le occorrenze della ricerca. Uso Mysql come database.
Girando ho trovato questo post che fa al caso mio:
http://www.ruby-forum.com/topic/85885#158258

Però a me continua a non andare, dandomi sempre quell’errore di sintassi
Mysql in corrispondenza degli apici, nonostante le abbia ormai provate
tutte.
Inutile aggiungere che se tolgo il LIKE e torno ad una ricerca
“tradizionale” tutto funziona correttamente, però non posso fare
ricerche partendo da dati parziali.

Dove sbaglio? Ci sono altri sistemi?

Grazie e a presto :slight_smile:
Daneel O.


#2

Il giorno 16/apr/07, alle ore 16:57, Daneel O. ha scritto:

La sintassi è questa:

SELECT field FROM table WHERE field LIKE “%giov%”;


#3

Luca M. wrote:

direi che questo potrebbe andare:

Model.find(:all, :conditions=>[‘field like ?’,
“%#{params[:lookingfor]}%”])

il problema nel post e’ che mettevao il % nella clausole where (le
conditions) quando in realta deve essere parte del valore passato alla
stringa.

ciao,
Luca

Ecco, proprio l’unica cosa che non ho provato: spostare "di là " i %…
Certo che però anche loro fare esempi errati e dire che funzionano…
non si fa mica così… o è per burlarsi dei novellini? :slight_smile:

Grazie mille e a presto :slight_smile:
Daneel O.


#4

Daneel O. wrote:

Buongiorno lista.
Devo dare agli utenti la possibilità di cercare dei dati partendo da una
parte di essi, per esempio se si vuole cercare “giovanni” dovrà essere
possibile inserire “giov” o “van”; naturalmente come risultato si
avranno tutte le occorrenze della ricerca. Uso Mysql come database.
Girando ho trovato questo post che fa al caso mio:
http://www.ruby-forum.com/topic/85885#158258

direi che questo potrebbe andare:

Model.find(:all, :conditions=>[‘field like ?’,
“%#{params[:lookingfor]}%”])

il problema nel post e’ che mettevao il % nella clausole where (le
conditions) quando in realta deve essere parte del valore passato alla
stringa.

ciao,
Luca

Web: http://spazidigitali.com - http://thetyper.com
Email mailto://removed_email_address@domain.invalid
Skype callto://l.mearelli