Ir al contenido



Foto

Procedimientos Almacenados el uso de LIKE (DUDA)


  • Por favor identifícate para responder
4 respuestas en este tema

#1 Electroadicto

Electroadicto

    Member

  • Miembros
  • PipPip
  • 13 mensajes
  • LocationLa Habana

Escrito 05 junio 2017 - 06:11

Este texto es en español hombre
El problema es el siguiente.
Cuando creo este procedimiento

sql
  1. CREATE PROCEDURE busca(IN buscar text)
  2. BEGIN
  3.  
  4. SELECT * FROM calendario WHERE descripcion LIKE '%buscar%’;
  5. Hombre
  6. end;

Y llamo a:

sql
  1. CALL busca('pruebas');

Me devuelve el resultado en (0) pero si llamo simplemente a:


sql
  1. SELECT * FROM calendario WHERE descripcion LIKE '%pruebas%' ;

me da el resultado de la busqueda perfectamente. Ahora para mi el problema en esta parte like '%buscar%' ;
me imagino que cuando se crea un procedimiento eso cambia ???
  • 0

#2 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 06 junio 2017 - 12:55

Hola.

 

El problema es que literalmente te está buscando la cadena '%buscar%'. No se está sustituyendo buscar por el contenido de la variable, puesto que estás indicando una cadena.

 

Cámbialo por :

 

SELECT * FROM calendario WHERE descripcion LIKE '%' + buscar + '%';

 

Saludos


  • 0

#3 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.408 mensajes
  • LocationRepública Dominicana

Escrito 06 junio 2017 - 06:52


sql
  1. CREATE PROCEDURE busca(IN buscar text)
  2. BEGIN
  3.  
  4. SELECT * FROM calendario WHERE descripcion LIKE CONCAT('%', buscar , '%');
  5.  
  6. END;

Debes hacer uso del concat.

 

Saludos.


  • 0

#4 Electroadicto

Electroadicto

    Member

  • Miembros
  • PipPip
  • 13 mensajes
  • LocationLa Habana

Escrito 06 junio 2017 - 10:31


sql
  1. CREATE PROCEDURE busca(IN buscar text)
  2. BEGIN
  3.  
  4. SELECT * FROM calendario WHERE descripcion LIKE CONCAT('%', buscar , '%');
  5.  
  6. END;

Debes hacer uso del concat.

 

Saludos.

 

 Perfecto Gracias


  • 0

#5 Electroadicto

Electroadicto

    Member

  • Miembros
  • PipPip
  • 13 mensajes
  • LocationLa Habana

Escrito 06 junio 2017 - 10:32

Hola.

 

El problema es que literalmente te está buscando la cadena '%buscar%'. No se está sustituyendo buscar por el contenido de la variable, puesto que estás indicando una cadena.

 

Cámbialo por :

 

SELECT * FROM calendario WHERE descripcion LIKE '%' + buscar + '%';

 

Saludos

resolvi con concat pero tambien voy a experimentar su respuesta saludos


  • 0