0

私の質問の例は次のとおりです:
I've got an array of id's

[ 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 に対して 1 つの行を取得したいと考えています。私が推測しているように、「IN()」ステートメントでは不可能です。
この問題を解決する方法についての仮定を得ることができますか?
注意:配列のすべての要素に対して異なるクエリを実行することはできません。

4

1 に答える 1

2

ID ごとに 1 つのレコードを含むセットを作成し、それを結合します。

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 に答える