sql根据两列或更多列的条件选择多行

时间:2018-07-05 20:50:22

标签: mysql sql

我正在尝试根据符合特定条件的3列选择多行。对于单个搜索,我执行以下操作:

SELECT user_id 
FROM users_to_users 
WHERE user_id = '1' AND contact_user_id = '9' AND contact_blocked = 1

我想提交一组值以返回多行。

所以我的价值观就是这样:

('1','9',1),('2,'9',1),('3','9',1)等...

并为匹配的行返回user_id。本质上,我试图查看哪些用户阻止了用户“ 9”,以便随后我可以仅将未阻止的用户添加到下一条语句中。

非常不熟悉SQL,以下是我认为可行的方法:

SELECT user_id
FROM users_to_users
WHERE (user_id, contact_user_id, contact_blocked) VALUES (...)

但是无法做到这一点。有什么方法可以根据多个列的匹配条件选择多个行吗?

1 个答案:

答案 0 :(得分:3)

您是否要在in中使用元组?如果是这样,这行得通:

SELECT user_id 
FROM users_to_users 
WHERE (user_id, contact_user_id, contact_blocked) in ( (1, 9, 1), (2, 9, 1), (3, 9, 1) )

但是,还有其他方法可以实现您的最终目标。