我想多次选择一个值。
我尝试使用以下查询: $ 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行数据
答案 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