MySQL表 - >你可以在同一个查询中多次返回同一行吗?

9 mysql

SELECT * FROM menu WHERE item_id = 1 OR item_id = 2 OR item_id = 3;
Run Code Online (Sandbox Code Playgroud)

上面的语句返回3行.但是下面的陈述只返回2行.

SELECT * FROM menu WHERE item_id = 1 OR item_id = 1 OR item_id = 2;
Run Code Online (Sandbox Code Playgroud)

我理解为什么喜欢,但有没有办法强制item_id 1被返回两次???

我想要返回的示例:

id - > 1 Chips€2.50
id - > 1 Chips€2.50
id - > 2 Coke€1.60
--------------------
总计€6.60

Gre*_*reg 6

例如,你可以加入另一张桌子

SELECT * FROM menu
INNER JOIN order_items ON menu.item_id = order_items.item_id
WHERE order_id = 123;
Run Code Online (Sandbox Code Playgroud)

或者只是在您的应用程序中复制它们

你不应该真的需要做你想要的.

  • Fwiw,我在这个帖子上徘徊,因为我需要为一个填充脚本生成多行副本.差异用例比上面的情况,但有时是必要的,无法访问应用层迁移. (3认同)

Dav*_*d M 5

你必须做这样的事情:

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
Run Code Online (Sandbox Code Playgroud)