Puis-je sélectionner plusieurs colonnes dans plusieurs variables dans la même requête de sélection dans MySQL?
Par exemple:
DECLARE iId INT(20);
DECLARE dCreate DATETIME;
SELECT Id INTO iId, dateCreated INTO dCreate
FROM products
WHERE pName=iName;
Quelle est la syntaxe correcte pour cela?
Votre syntaxe n'est pas tout à fait correct: vous devez répertorier les champs dans l'ordre précédant INTO et les variables cible correspondantes après:
SELECT Id, dateCreated
INTO iId, dCreate
FROM products
WHERE pName = iName
========== Conseiller ===========
@martin clayton La réponse est correcte, mais il ne s'agit que d'un conseil.
Évitez d'utiliser des variables ambiguës dans la procédure stockée.
Exemple :
SELECT Id, dateCreated
INTO id, datecreated
FROM products
WHERE pName = iName
L'exemple ci-dessus provoquera une erreur (erreur de valeur nulle)
L'exemple donné ci-dessous est correct. J'espère que cela a du sens.
Exemple :
SELECT Id, dateCreated
INTO val_id, val_datecreated
FROM products
WHERE pName = iName
Vous pouvez également les rendre sans ambiguïté en référençant la table, comme:
[Crédit: maganap ]
SELECT p.Id, p.dateCreated INTO id, datecreated FROM products p
WHERE pName = iName
À la place de la réponse de Martin, vous pouvez également ajouter la partie INTO à la fin de la requête pour la rendre plus lisible:
SELECT Id, dateCreated FROM products INTO iId, dCreate