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 (...)
但无法做到这一点。有没有办法根据多列的匹配条件选择多行?
解决方案
您是否尝试将元组与 一起使用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) )
但是,可能还有其他方法可以实现您的最终目标。
推荐阅读
- python - 如何并行化复杂的for循环
- apache-kafka - 如何使用 JmxTool 访问 Kafka 消费者指标(consumer-fetch-manager-metrics)?
- javascript - 将一个简单的函数修改为自包含的
- html - 显示 Bootstrap Dismissible 警报
- python - H2OValueError:文件 train_FD004.txt 不存在
- c# - 正则表达式包含所有特殊字符
- mysql - Express-handlebars 将多个数据集路由到一页
- java - 比 O(n^2) 更快地找到堆深度
- sql - 确保自动导入例程正确运行的最佳实践是什么
- javascript - 节点版本 8 和全局依赖项