Jump to content


Photo

Procedimientos Almacenados el uso de LIKE (DUDA)


  • Please log in to reply
4 replies to this topic

#1 Electroadicto

Electroadicto

    Member

  • Miembros
  • PipPip
  • 13 posts
  • LocationLa Habana

Posted 05 June 2017 - 06:11 PM

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
  • 1484 posts
  • LocationMallorca

Posted 06 June 2017 - 12:55 AM

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
  • 7419 posts
  • LocationRepública Dominicana

Posted 06 June 2017 - 06:52 AM


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 posts
  • LocationLa Habana

Posted 06 June 2017 - 10:31 PM


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 posts
  • LocationLa Habana

Posted 06 June 2017 - 10:32 PM

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




IP.Board spam blocked by CleanTalk.