MySQL: Sélection de plusieurs champs dans plusieurs variables dans une procédure stockée

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 correcte: vous devez lister les champs dans l’ordre avant l’INTO et les variables cibles correspondantes après:

     SELECT Id, dateCreated INTO iId, dCreate FROM products WHERE pName = iName 

    ========== Conseiller ==========

    @martin clayton La réponse est correcte, mais ceci est un conseil seulement.

    Veuillez éviter d’utiliser une variable ambiguë 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 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 

    Alternativement à la réponse de Martin, vous pouvez également append la partie INTO à la fin de la requête pour rendre la requête plus lisible:

     SELECT Id, dateCreated FROM products INTO iId, dCreate