RoR, Mysql e ricerca con LIKE

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.

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

La sintassi è questa:

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

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.

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:
Noob search question - Rails - Ruby-Forum

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://[email protected]
Skype callto://l.mearelli