Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
これはMySQLで可能ですか?
私がテーブルを持っているとしましょう:ID、名前
ここで、クエリを実行して、これらの名前が「John、James、Bill」に存在するかどうかを確認します。Jamesという名前だけがデータベース(ID:23、Name:James)に存在すると仮定すると、次の結果が表示されます。
ID | Name ------------ null | John 23 | James null | Bill
何か案は?
テーブルと、検索する名前のリストを含むテーブルとの間に外部結合が必要です(クエリを実行する前にそのようなテーブルを作成するか、UNION以下に示すようにクエリ内でそのようなテーブルをマテリアライズできます)。SQL結合について学びます。
UNION
SELECT * FROM my_table NATURAL RIGHT JOIN ( SELECT 'John' AS Name UNION ALL SELECT 'James' UNION ALL SELECT 'Bill' ) t
sqlfiddleでそれを参照してください。
IN()比較機能で確認できますWHERE Name IN ('John', 'James', 'Bill')。一致を示す結果を返したい場合はID、次を使用できます。
IN()
WHERE Name IN ('John', 'James', 'Bill')
ID
SELECT b.ID, a.Name FROM sparkles a LEFT JOIN (SELECT ID, Name FROM sparkles WHERE Name IN ('John', 'James', 'Bill')) b ON b.ID = a.ID