0

我的问题的示例如下:
我有一个 id 数组

[ 6230, 206, 4259, 24761, 26736, 219, 281, 281, 516, 495, 10371 ]

我想像这样为我的 database.table 设置 SELECT 查询:

SELECT * FROM `database`.`table` WHERE `id` IN (6230, 206, 4259, 24761, 26736, 219, 281, 281, 516, 495, 10371);

如您所见,我有 2 个相等的 id,因此在该查询的结果中,我将只有 10 行。
但我想为数组中的每个 id 获取一行。正如我猜测的那样,“IN()”语句是不可能的。
我能得到任何关于如何解决这个问题的假设吗?
请注意:我不能对数组的每个元素执行不同的查询。

4

1 回答 1

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
于 2013-05-18T19:36:44.507 回答