Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在查询结果中多次返回同一记录_Mysql - Fatal编程技术网

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