Partage
  • Partager sur Facebook
  • Partager sur Twitter

Subquery returns more than 1 row

    7 août 2022 à 13:52:08

    Bonjour, il y a un sujet similaire qui a été clôturé mais qui ne matche pas avec mon cas.

    Je souhaite concaténer dans une variable toutes les valeurs possibles entre 1 et 9 qui ne se trouvent pas dans d'autres variables. J'ai donc utilisé set x = CONCAT(SELECT id FROM table WHERE id not in (var1, var2...)). J'ai un message d'erreur "Suquery returns more than 1 row". J'ai essayé avec des jointures mais le résultat est le même. J'ai esssayé where id != var1 AND id != var2 etc mais pareil, bloccage total !!

    NB: la table en question comporte des id distinct entre 1 et 9

    Merci d'avance pour votre aide

    -
    Edité par Benzouye 8 août 2022 à 10:50:23

    • Partager sur Facebook
    • Partager sur Twitter
      7 août 2022 à 17:30:44

      Bonjour,

      Le besoin n'est pas légitime car il va à l'encontre de la première forme normale... mais passons...

      Pour ton cas il faut faire SELECT GROUP_CONCAT( ... ) et non CONCAT( SELECT ... ) :

      SET x = (
      	SELECT GROUP_CONCAT( id )
      	FROM table
      	WHERE id NOT IN ( ... )
      )

      -
      Edité par Benzouye 8 août 2022 à 10:48:48

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL

      Subquery returns more than 1 row

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown