多次选择相同的值

时间:2019-01-12 17:18:50

标签: php mysql sql

我想多次选择一个值。

我尝试使用以下查询: $ id_nums = 1,1,1,1,2,2,2

   SELECT Name FROM Events WHERE ID IN ($id_nums)

以下查询虽然没有完全完成工作,但由于IN正在删除“重复项”,因此结果返回了ID为1的一行和ID为2的一行。

我的第二次尝试是使用以下查询完成的: $ id_nums =(1),(1),(1),(2),(2)

SELECT Name FROM Events EVNT RIGHT JOIN (SELECT Name FROM (VALUES $id_nums  )AS X(a)) AS test ON EVNT.Name = test.a;

尽管这也不起作用,因为语法错误。我看不到我在那儿犯的错误。

我期望的实际结果是,如果我选择“行”,那么我将看到实际选择的行。例如$ id_nums = 1,1,1,1,2,2,2 那么我将获得ID = = 1的4行数据和ID = 2的3行数据

2 个答案:

答案 0 :(得分:1)

您需要生成一个数字列表,然后使用left join(或right join,但我更喜欢left join。在MySQL中,您可以使用select和{ {1}}:

union all

答案 1 :(得分:1)

您可以在UNION ALL子句中使用类似的内容

SELECT Name FROM Events WHERE ID=1
UNION ALL
SELECT Name FROM Events WHERE ID=1
UNION ALL
SELECT Name FROM Events WHERE ID=1
UNION ALL
SELECT Name FROM Events WHERE ID=1
UNION ALL
SELECT Name FROM Events WHERE ID=2
UNION ALL
SELECT Name FROM Events WHERE ID=2