Búsqueda strings

Tengo una variable que proviene de un formulario, por ejemplo
datos=“ATEM, FISI” y deseo seleccionar de mi base datos MySQL el
registro que corresponde al campo asignaturas=“MATEMATICAS, FISICA”.
Agradecería me fuera apuntada alguna técnica para realizar dicha
búqueda.

Gracias de antemano,

Diego

Diego Muñoz wrote:

Tengo una variable que proviene de un formulario, por ejemplo
datos=“ATEM, FISI” y deseo seleccionar de mi base datos MySQL el
registro que corresponde al campo asignaturas=“MATEMATICAS, FISICA”.
Agradecería me fuera apuntada alguna técnica para realizar dicha
búqueda.

Gracias de antemano,

Diego

Donde quise decir datos=“ATEM, FISI” quise decir datos=“ATEM FISI”

Gracias por su atención,

Diego

No sé si te he entendido, pero puede que esto te sirva

en el controlador :

filtro = params[:datos].gsub(" “,”%") —> con esto le pones el comodin
%
en todos los espacios
filtro = “%”+filtro+"%"
Asignatura.find :all (:conditions => [“campo_asignatura like ?”, filtro
] )

Es algo así lo que quieres?

Pues eso sería algo así como:

condiciones = [] --> creas un array vacío
for dato in params[:datos].split(" ") --> lo separas por el espacio
condiciones << “nombre like (’%#{dato}%’) " —> vas poniendo las
condiciones para que filtre por el mismo campo
end
Asignatura.find :all (:conditions => condiciones.join(” and ") )

con eso debería funcionarte

Luis V. wrote:

No sé si te he entendido, pero puede que esto te sirva

en el controlador :

filtro = params[:datos].gsub(" “,”%") —> con esto le pones el comodin
%
en todos los espacios
filtro = “%”+filtro+"%"
Asignatura.find :all (:conditions => [“campo_asignatura like ?”, filtro
] )

Es algo así lo que quieres?

Luis V. wrote:

No sé si te he entendido, pero puede que esto te sirva

en el controlador :

filtro = params[:datos].gsub(" “,”%") —> con esto le pones el comodin
%
en todos los espacios
filtro = “%”+filtro+"%"
Asignatura.find :all (:conditions => [“campo_asignatura like ?”, filtro
] )

Es algo así lo que quieres?

Antes de nada agradecer tu pronta respuesta. No obstante no es
exactamente lo que quiero. Me explico imaginad que tenéis un campo con
los apellidos y nombre. Ejemplo “PEREZ, JOSÉ”. Desde un formulario se
solicita la búsqueda “PER JOS” o “JOS PER”. Es obvio que lo que se
pretende es
buscar la ficha de PEREZ, JOSÉ a través de una solicitud simplificada
de
datos, en este caso las tres primera letras de apellido nombre y, por
supuesto obviando la coma.

Gracias,

Diego

Luis V. wrote:

Pues eso sería algo así como:

condiciones = [] --> creas un array vacío
for dato in params[:datos].split(" ") --> lo separas por el espacio
condiciones << “nombre like (’%#{dato}%’) " —> vas poniendo las
condiciones para que filtre por el mismo campo
end
Asignatura.find :all (:conditions => condiciones.join(” and ") )

con eso debería funcionarte

La solución que apuntas es la correcta. Muchas gracias por tu
colaboración.

Diego

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs