我的问题的例子如下:
我有一个id的数组
[ 6230, 206, 4259, 24761, 26736, 219, 281, 281, 516, 495, 10371 ]
我想将SELECT查询设置为我的database.table,如:
SELECT * FROM `database`.`table` WHERE `id` IN (6230, 206, 4259, 24761, 26736, 219, 281, 281, 516, 495, 10371);
正如你所看到的,我有2个相同的id,所以在查询结果中我只有10行。
但我希望为数组中的每个id获取一行。正如我猜测的那样,“IN()”声明并不具备。
我能否就如何解决这个问题做出任何假设。
注意:我无法对数组的每个元素执行不同的查询。
答案 0 :(得分:2)
为每个id创建一个包含一条记录的集合,然后加入:
select t.* from database.table as t inner join (
select 6230 as id union all
select 206 union all
select 4259 union all
select 24761 union all
select 26736 union all
select 219 union all
select 281 union all
select 281 union all
select 516 union all
select 495 union all
select 10371
) as x on x.id = t.id