Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Duda con stored procedure

Estas en el tema de Duda con stored procedure en el foro de Mysql en Foros del Web. Hola a todos! Tengo este procedure: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original CREATE PROCEDURE loteria ( ) BEGIN DECLARE num INT ; SET num = ...
  #1 (permalink)  
Antiguo 10/01/2012, 17:40
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 4 meses
Puntos: 11
Duda con stored procedure

Hola a todos! Tengo este procedure:

Código MySQL:
Ver original
  1. CREATE PROCEDURE loteria ()
  2. SET num = (SELECT cuadro , COUNT(*) as c FROM principal GROUP BY cuadro ORDER BY c asc LIMIT 1);
  3. IF (num < 100) THEN
  4.     SELECT num1, num2 FROM principal WHERE cuadro = num;
  5.     SELECT 'Todos los numerose estan llenos.';

Lo que ocurre es que en el 1er. SELECT necesito conocer los 2 valores que pido, el de cuadro y el de COUNT y no se como obtenerlos.

Alguna idea??

Gracias!
  #2 (permalink)  
Antiguo 10/01/2012, 18:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Duda con stored procedure

Prueba con:
Código MySQL:
Ver original
  1. CREATE PROCEDURE loteria ()
  2.     DECLARE num INT;
  3.     DECLARE totalnum INT;
  4.  
  5.     SELECT cuadro , COUNT(*) c
  6.     FROM principal
  7.     GROUP BY cuadro
  8.     ORDER BY c asc LIMIT 1
  9.     INTO num, totalnum;
  10.     IF (num < 100) THEN
  11.         SELECT num1, num2 FROM principal WHERE cuadro = num;
  12.     ELSE
  13.         SELECT 'Todos los numerose estan llenos.';
  14.     END IF;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 10/01/2012, 18:54
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: Duda con stored procedure

Muchas gracias. Me funciona genial.

Solo tengo un problemilla para leer los datos ya que deberia ver varios resultados num1,num2 y solo obtengo 1...

NOTA:
en la consola de mysql obtengo los 3 registros que espero...

Última edición por oms02; 11/01/2012 a las 02:24
  #4 (permalink)  
Antiguo 11/01/2012, 18:47
Avatar de Prais  
Fecha de Ingreso: octubre-2010
Mensajes: 114
Antigüedad: 14 años, 1 mes
Puntos: 6
Exclamación Respuesta: Duda con stored procedure

Cita:
Iniciado por oms02 Ver Mensaje
Solo tengo un problemilla para leer los datos ya que deberia ver varios resultados num1,num2 y solo obtengo 1...
mmm, No entiendo bien lo que quieres, pero supongo que deseas el retorno del resultado, para trabajarlas con un lenguaje de programacion, te pongo el ejemplo como las rescato con php, y funciona perfecto.
Código MySQL:
Ver original
  1. DELIMITER //
  2. CREATE PROCEDURE loteria ()
  3.  DECLARE num INT;
  4.  DECLARE totalnum INT;
  5. DECLARE num_1 INT;
  6. DECLARE num_2 INT;
  7.  
  8. SET num_1=0;
  9. SET num_2=0;
  10.  
  11.     SELECT cuadro , COUNT(*) c  FROM principal GROUP BY cuadro  
  12.      ORDER BY c as c      LIMIT 1
  13.       INTO num, totalnum;
  14.  IF (num < 100) THEN
  15.          SELECT num1, num2  INTO  tu_numero_1, tu_numero_2 FROM principal
  16.           WHERE cuadro = num;
  17.           SET num_1=tu_numero_1;
  18.           SET num_2=tu_numero_2;
  19.           SELECT num_1, num_2 ;
  20.       ELSE
  21.          SELECT 'Todos los numerose estan llenos.';
  22.   END IF;
  23. END;//

Te aconsejo inicializar las variables antes de hacer uso de ellas, ya que si no lo haces estan toman NULL por defecto.
Con php llamas al procedimiento y lo rescatas como cualquier resultado.
Saludos.

Última edición por Prais; 11/01/2012 a las 18:50 Razón: correccion
  #5 (permalink)  
Antiguo 12/01/2012, 19:12
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: Duda con stored procedure

Muchisimas gracias a ambos. Funciona perfecto!

Etiquetas: procedure, select, stored
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:03.