Mysql 在查询结果中多次返回同一记录
以下查询:Mysql 在查询结果中多次返回同一记录,mysql,Mysql,以下查询: SELECT * FROM table WHERE id IN (1,2,3); 将返回三条记录 SELECT * FROM table WHERE id IN (1,2,1); 将只返回两条记录(对于ID 1和2) 有没有办法让结果集包含Id 1的两条记录(总共三条)?您可以尝试为要筛选的Id创建一个表。这会得到你想要的结果。我不确定mysql是否支持CTE,但希望这足以让您了解这个想法 WITH IDS AS ( SELECT 1 AS id UNION ALL
SELECT * FROM table WHERE id IN (1,2,3);
将返回三条记录
SELECT * FROM table WHERE id IN (1,2,1);
将只返回两条记录(对于ID 1和2)
有没有办法让结果集包含Id 1的两条记录(总共三条)?您可以尝试为要筛选的Id创建一个表。这会得到你想要的结果。我不确定mysql是否支持CTE,但希望这足以让您了解这个想法
WITH IDS
AS
(
SELECT 1 AS id
UNION ALL
SELECT 2 AS id
UNION ALL
SELECT 1 AS id
)
SELECT T.*
FROM T
JOIN IDS
ON T.id = IDS.id
创建一个包含您想要的id的表,然后在id上连接到该表。听起来您想使用mysql来完成两次显示行的表示工作,而不是限制数据检索的目的。我怀疑danblack的路径是正确的,但无论如何,请参阅mysql 8和mariadb 10.2+support cte