Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/04/2012, 08:57
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: LIKE en un procedure mysql

Hola srnetworks:

En tu post pones esto:

Cita:
Lo que busco es q me obtenga los datos de la tabla usuarios donde el nombre (u_nombre) sea igual al parametro que estoy pasando.
Para esto NO NECESITAS UTILIZAR LA CLÁUSULA LIKE, DEBES HACERLO DIRECTAMENTE CON UN =, el operador LIKE se utiliza para búsqueda de patrones y nunca de debe utilizar para condiciones de igualdad. el procedimiento quedaría más o menos así:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM usuarios;
  2. +------+----------+
  3. | u_id | u_nombre |
  4. +------+----------+
  5. |    1 | uno      |
  6. |    2 | dos      |
  7. |   11 | otro uno |
  8. +------+----------+
  9. 3 rows in set (0.00 sec)
  10.  
  11. mysql> DROP PROCEDURE IF EXISTS `pruebas`.`mana`;
  12. Query OK, 0 rows affected (0.00 sec)
  13.  
  14. mysql> DELIMITER $$
  15. mysql> CREATE PROCEDURE `pruebas`.`mana`(IN palabra VARCHAR(20))
  16.     -> BEGIN
  17.     -> SELECT * FROM usuarios WHERE u_nombre = palabra;
  18.     -> END$$
  19. Query OK, 0 rows affected (0.00 sec)
  20.  
  21. mysql> DELIMITER ;
  22.  
  23. mysql> CALL mana('uno');
  24. +------+----------+
  25. | u_id | u_nombre |
  26. +------+----------+
  27. |    1 | uno      |
  28. +------+----------+
  29. 1 row in set (0.00 sec)
  30.  
  31. Query OK, 0 rows affected (0.02 sec)

Debes tener cuidado en que el nombre de los parámetros de tus procedimientos NO SEAN IGUALES A NOMBRES DE COLUMNAS EN TUS TABLAS. Haz la prueba y nos comentas.

Saludos
Leo.