現在、複数の ID を持つ複数の異なるレコードを照会するコードを作成しています。私が試してみました:
SELECT * FROM Items WHERE ID = ( 1, 2 )
SELECT * FROM Items WHERE ID = 1, 2
SELECT * FROM Items WHERE ID = '1, 2'
私は何を間違っていますか?
使用する
select * from items where id in (1,2);
これを使って
SELECT * FROM Items WHERE ID = 1 or ID = 2;
または短縮表記を使用する
SELECT * FROM Items WHERE ID IN (1,2);
IN
複数の値を比較する場合に使用します。
SELECT * FROM Items WHERE ID IN (1, 2)
これは同じです
SELECT * FROM Items WHERE ID = 1 OR ID = 2
このステートメントの場合: "... 複数の ID を持つ複数の異なるレコードを照会する"の場合、複数の ID を持つグループを検索したいと思います。その場合、問題は と呼ばれRelational Division
ます。
SELECT groupColumn
FROM Items
WHERE ID IN (1, 2)
GROUP BY groupColumn
HAVING COUNT(*) = 2
入力する必要があるのは
SELECT * FROM Items WHERE ID IN (1,2)
IN ブラケット内の文字列値には、一重引用符 ('1','2') を使用することに注意してください。
IN
次のように使用します
SELECT * FROM Items WHERE ID IN (1, 2);
構文:
SELECT * FROM TABLE WHERE ID IN (id1, id2, ..., idn)
ここにあなたの場合:
SELECT * FROM Items WHERE ID IN (1, 2);
それも同様に機能します。情報を探しているのは、ほとんどの SQL 言語の「IN」演算子です ( MySQL の例はこちら)。
あなたがやっていることは、一連の値をセットとして提供し (IN 演算子の右側)、データベースに対して、クエリ対象の列 (IN 演算子の左側) を持つレコードを返すように要求することです。セット内の値の。