首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL :如何在组合主键上使用"IN“过滤查询

MySQL :如何在组合主键上使用"IN“过滤查询
EN

Stack Overflow用户
提问于 2021-10-29 08:41:49
回答 2查看 70关注 0票数 0

我在MySQL中有一个表,这样主键就是一个复合键,如下所示:

代码语言:javascript
复制
+--------------+----+------------------------------+
| fk_something | id |            label             |
+--------------+----+------------------------------+
|            1 |  1 | First record of something 1  |
|            2 |  1 | First record of something 2  |
|            2 |  2 | Second record of something 2 |
|            1 |  2 | Second record of something 1 |
|            2 |  3 | Third record of something 2  |
+--------------+----+------------------------------+

但现在我有一个棘手的查询要做,例如,我想使用"IN“过滤器检索2-1和1-2记录……我该怎么做呢?

我试过这样的方法:

代码语言:javascript
复制
SELECT * FROM my_table WHERE id IN (1, 2) AND fk_something IN (2, 1)

但它也给了我1-1和2-2的记录...

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-29 08:50:49

您可以利用很少使用的名为row value expressions的SQL特性。

代码语言:javascript
复制
SELECT * FROM myTable
WHERE (id, fk_something) IN (
(1, 2),
(2, 1),
(2, 3)
)
票数 2
EN

Stack Overflow用户

发布于 2021-10-29 10:41:10

我想这对你有帮助

代码语言:javascript
复制
SELECT *
FROM my_table 
WHERE id IN (1, 2) 
AND fk_something IN (1, 2)
AND id != fk_something
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69765969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档