2016-04-18 7 views
3

データベースSarah ConnorKyle Reeseから2人のユーザーをフェッチしたいとします。どのようにするにはのを使用しますか?2つのセットで値を選択

select * 
from users 
where 
    first_name in ('Sarah', 'Kyle') and 
    last_name in ('Connor', 'Reese') 

しかし、Sarah Reeseも取得するため、このクエリは間違っています。それを修正するには?また、クエリはのパフォーマンスで効率的でなければなりません。

あなたはこの使用できるMySQLで

答えて

5

select * 
from users 
where 
    (first_name, last_name) in (('Sarah', 'Connor'), ('Kyle', 'Reese')) 

そうでない場合は、使用することができます:

select * 
from users 
where 
    (first_name = 'Sarah' and last_name = 'Connor') or 
    (first_name = 'Kyle' and last_name = 'Reese') 
+2

のためにこれを試してみてください - それは、標準のSQLだが。それは他のDBMSでも動作します –

+0

ありがとう、それは私が必要とするものです! –

+0

Core SQL-2008以外の以下の機能が使用されています。F641、 "行とテーブルのコンストラクタ"; T051、 "行タイプ"; F561、 "完全な値の式" – jarlh

1

はMySQLの特定ではありませんSQL Serverの、

select * 
from users 
where first_name + ' ' + last_name in ('Sarah Connor','Kyle Reese') 
+0

製品固有の回答、dbmsが指定されていない質問。少なくとも、これがdbmsであることをOPに伝えてください。 (おそらくインデックスの使用を不適格にするでしょう...) – jarlh

関連する問題