valor - MySQL: seleccionando múltiples campos en múltiples variables en un procedimiento almacenado
procedimientos almacenados sql ejemplos (3)
========== Aconseja ==========
@martin clayton La respuesta es correcta, pero esto es solo un consejo.
Evite el uso de variables ambiguas en el procedimiento almacenado.
Ejemplo:
SELECT Id, dateCreated
INTO id, datecreated
FROM products
WHERE pName = iName
El ejemplo anterior causará un error (error de valor nulo)
Ejemplo de dar a continuación es correcto. Espero que esto tenga sentido.
Ejemplo:
SELECT Id, dateCreated
INTO val_id, val_datecreated
FROM products
WHERE pName = iName
También puede hacerlos inequívocos haciendo referencia a la tabla, como:
[Crédito: maganap ]
SELECT p.Id, p.dateCreated INTO id, datecreated FROM products p
WHERE pName = iName
¿PUEDO SELECCIONAR varias columnas en múltiples variables dentro de la misma consulta de selección en MySQL?
Por ejemplo:
DECLARE iId INT(20);
DECLARE dCreate DATETIME;
SELECT Id INTO iId, dateCreated INTO dCreate
FROM products
WHERE pName=iName;
¿Cuál es la sintaxis correcta para esto?
Alternativamente a la respuesta de Martin, también puede agregar la parte INTO al final de la consulta para hacer que la consulta sea más legible:
SELECT Id, dateCreated FROM products INTO iId, dCreate
Su syntax no es correcta: debe listar los campos en orden antes del INTO y las variables de destino correspondientes después de:
SELECT Id, dateCreated
INTO iId, dCreate
FROM products
WHERE pName = iName