Forum: Italian Ruby user group RoR, Mysql e ricerca con LIKE

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Bd6fb06295c8ff8003af041210c91daa?d=identicon&s=25 Daneel Olivaw (daneel_olivaw)
on 2007-04-16 16:57
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 :-)
Daneel Olivaw
Dde61819bc154a68a11a41b605ff6b24?d=identicon&s=25 Giovanni Intini (Guest)
on 2007-04-16 17:05
(Received via mailing list)
Il giorno 16/apr/07, alle ore 16:57, Daneel Olivaw ha scritto:

La sintassi è questa:

SELECT field FROM table WHERE field LIKE "%giov%";
05720447a341aaffb8827039df3931df?d=identicon&s=25 Luca Mearelli (Guest)
on 2007-04-16 17:06
(Received via mailing list)
Daneel Olivaw 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://luca.mearelli@gmail.com
Skype callto://l.mearelli
Bd6fb06295c8ff8003af041210c91daa?d=identicon&s=25 Daneel Olivaw (daneel_olivaw)
on 2007-04-16 17:33
Luca Mearelli 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? ^_^

Grazie mille e a presto :-)
Daneel Olivaw
This topic is locked and can not be replied to.