9
votes

Table MySQL -> Pouvez-vous renvoyer la même ligne plusieurs fois, dans la même requête?

SELECT * FROM menu WHERE item_id = 1 OR item_id = 1 OR item_id = 2;

0 commentaires

7 Réponses :


8
votes

Vous devriez faire quelque chose comme ceci:

SELECT * FROM menu WHERE item_id = 1
UNION ALL
SELECT * FROM menu WHERE item_id = 1
UNION ALL
SELECT * FROM menu WHERE item_id = 2


0 commentaires

7
votes

Vous pouvez vous joindre à une autre table, par exemple

SELECT * FROM menu
INNER JOIN order_items ON menu.item_id = order_items.item_id
WHERE order_id = 123;


2 commentaires

Ouais pas ton rite comme, la dupliquer avec PHP est facile. Merci beaucoup de garçon!


Fwiw, j'ai erré sur ce fil parce que j'ai besoin de produire plusieurs copies de lignes pour un script de population. Differutilisation d'utilisation que ci-dessus, mais il est parfois nécessaire, sans accès à la migration de niveau d'application.



0
votes

Vous avez besoin d'un moyen de générer une meuelle factice pour le faire, et MySQL CODE> manque.

Vous pouvez effectuer ce qui suit: P>

SELECT  *
FROM    (
        SELECT  1 AS x
        UNION ALL
        SELECT  1 AS x
        UNION ALL
        SELECT  2 AS x
        ) dummy
JOIN    menu
ON      menu.id = dummy.x


0 commentaires

0
votes

Utiliser les syndicats:

SELECT * FROM menu WHERE item_id = 1
  UNION ALL
SELECT * FROM menu WHERE item_id = 1
  UNION ALL
SELECT * FROM menu WHERE item_id = 2


0 commentaires

0
votes

Pourquoi voulez-vous interroger deux fois DB pour la même chose? Juste interroger une fois et faire la modification (Ajoutez des lignes ou affichez la même ligne deux fois) à l'aide de la langue de programmation que vous utilisez.

quelque chose comme xxx


0 commentaires

0
votes

La première réponse a l'air faux. Il convient de laisser le déclenchement extérieur avec commande_items comme première table ... xxx


0 commentaires

1
votes

Vous venez de faire une jointure parmi ses alias, par exemple

1 abc
1 abc
1 abc
1 abc
1 abc


0 commentaires