mysql - 为具有相同值的 WHERE IN 数组获取不同的行

标签 mysql

对于 array = [1,1,1,2],DB 表包含 ids-1,2 的条目。

查询 -> "SELECT * FROM table WHERE id in array" 只返回两行。

有没有办法让它返回 4 行?

最佳答案

您可以使用 UNION ALL 构建一个内联表,然后将您的表INNER JOIN 连接到它:

SELECT t2.*
FROM (
   SELECT 1 AS v UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 2
) AS t1
INNER JOIN mytable AS t2 ON t1.v = t2.id

关于mysql - 为具有相同值的 WHERE IN 数组获取不同的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35315917/

相关文章:

mysql - mysql比较子查询中两个字段的值

mysql - LOAD DATA LOCAL INFILE 在 RDS 中不起作用

php - 使用 PHP 变量将日期添加到 MySQL

php - 如果使用 php 图像字段为空,则应接受数据

mysql - 如何获取链接到外键值的InnoDB表名?

mysql - ASP.NET MySQL openauth 不工作

javascript - CRUD api - 连接前端和后端

PHP 和 MySQL 内容显示乱序

mysql - 提取具有最大值的行

mysql - 如何防止大型MySQL导入的连接超时