gpt4 book ai didi

mysql - MySQL "IN"子句可以返回重复项吗?

转载 作者:行者123 更新时间:2023-12-02 16:26:10 25 4
gpt4 key购买 nike

我知道大多数时候你想要这个,但我正在寻找一种使用 IN 获取重复行的方法。

SELECT `id`, `name`
FROM `users`
WHERE `id` IN
(11, 11, 3, 11, 6)

我想要的结果:

+----+---------+
| id | name |
+----+---------+
| 11 | Alice |
| 11 | Alice |
| 3 | Bob |
| 11 | Alice |
| 6 | Charlie |
+----+---------+

这是一个非常简化的示例,但在实际查询中,能够使用 IN 执行此操作将使我的生活轻松大约 1000 倍。

最佳答案

您正在寻找的是一个连接,它可以为您生成所需的笛卡尔积:

SELECT users.id, users.name
FROM users
JOIN (
SELECT 11 id, 1 ordinal UNION ALL
SELECT 11 id, 2 ordinal UNION ALL
SELECT 3 id, 3 ordinal UNION ALL
SELECT 11 id, 4 ordinal UNION ALL
SELECT 6 id, 5 ordinal
) t ON t.id = users.id
ORDER BY ordinal

订购是可选的,当然... db-fiddle here

关于mysql - MySQL "IN"子句可以返回重复项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64487674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com