MySQL - Utilizar argumentos en LIKE

 
Vista:

Utilizar argumentos en LIKE

Publicado por Cynthia (4 intervenciones) el 14/05/2007 18:30:06
Como podria comparar una columna con un argumento en un stored procedure que utiliza SELECT ...LIKE? Por ejemplo: Quiero que me devuelva los registros que coincidan parcial o totalmente con un parametro apellidoemp que podria ser cualquier apellido:

El registro de la tabla Empleado por ejemplo seria
idEmpleado -> 1
nombres -> Ana Julia
apellidos -> Perez Gomez
estado -> a
idTipoEmpleado -> 1

CREATE PROCEDURE 'BuscarEmpleadoPorApellidoSP' (apellidoemp char(25))
BEGIN
SELECT * FROM Empleado WHERE apellidos LIKE .......................... -->(esto es lo que me falta)
END

Quiero que esto devuelva en java:
empleado = BuscarEmpleadoPorApellido ("BuscarEmpleadoPorApellidoSP","Perez","Empleado");
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Utilizar argumentos en LIKE

Publicado por kain (124 intervenciones) el 14/05/2007 21:08:56
aviso no tengo ni idea de java, peeerooooo creo que lo que quieres hacer no te vale.

una procedure en mysql no devuelve resultados , para eso estan las funciones, peeeeerooooo, tampoco te sirve una funcion por que solo devuelve un resultado.

ahora bien, podrias hacerlo con un vista, aunque seria mas comodo que hicieras en select desde java y recojas los resultados con algun dataset o como se llame en java.

encuando a lo de like, supongamos que quieras buscar gonzalez al comienzo del campo:

LIKE 'gonzalez%'

si fuera al final LIKE '%gonzalez'

y en cualquier posicion LIKE '%gonzalez%'

espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Utilizar argumentos en LIKE

Publicado por Cynthia (4 intervenciones) el 15/05/2007 21:43:24
Entonces no puedo pasarle una variable string al procedimiento para que la busque y vea si hay un registro que contenga esa palabra en una determinada columna y me devuelva ese registro???

El ejemplo que colocaste es si conoces la palabra que quieres buscar Ej: Gonzalez ...pero en el caso que estoy interesada, no se cual palabra colocara el usuario en una caja de texto...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Utilizar argumentos en LIKE

Publicado por kain (124 intervenciones) el 16/05/2007 14:53:34
buscar="gonzalez";

selectaejecutar="SELECT * from tabla WHERE apellido LIKE '%"+buscar+"%'";

si enviar la variable selectaejecutar a mysql te devolvera un recorset (o como se llame en java) que contendra todos los registro que en su campo apellido contengan "gonzalez" o lo que quieras cargar en esa variable.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Utilizar argumentos en LIKE

Publicado por Cynthia (4 intervenciones) el 21/05/2007 16:45:49
Ya probe de la forma sugerida pero no funciona...si utilizo comillas antes del select sale error y si concadeno con concat no me da los resultados deseados...ya que produce un error desde Java...toma la variable como si fuera una columna de la tabla, y por supuesto me dice que no existe esa columna...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar