gpt4 book ai didi

sql - mysql中 'IN'子句中的倍数 'WHERE'表达式求值

转载 作者:可可西里 更新时间:2023-11-01 06:31:02 25 4
gpt4 key购买 nike

根据 @Cesar 的要求更新。希望我明白你想要什么,如果不明白,请回复。夸斯诺伊。

如果我进行这样的 SQL 查询:SELECT * FROM TABLE_NAME WHERE b IN (2, 7) AND c IN (3, 9),我可以假设MySQL 将只匹配每个列表中具有相同编号的元素对?

也就是说,(2, 3), (7, 9), ...?

例如,假设我们有这样一张表:

 +----------+----------+----------+ |    PK    |     b    |     c    | +----------+----------+----------+ |     1    |     2    |     3    | +----------+----------+----------+ |     2    |     5    |     4    | +----------+----------+----------+ |     3    |     7    |     9    | +----------+----------+----------+ |     4    |     7    |     4    | +----------+----------+----------+ |     5    |     2    |     9    | +----------+----------+----------+

假设返回的唯一行是13(而不是5)是否正确?

最佳答案

SELECT * FROM TABLE_NAME WHERE b IN(5,7) AND c IN(4,4)

此查询将返回行,其中 b57c4

“成对评估”是什么意思?

更新:

我将在示例中再添加一行:

 +----------+----------+----------+
| PK | b | c |
+----------+----------+----------+
| 1 | 2 | 3 |
+----------+----------+----------+
| 2 | 5 | 4 |
+----------+----------+----------+
| 3 | 7 | 9 |
+----------+----------+----------+
| 4 | 7 | 4 |
+----------+----------+----------+
| 5 | 2 | 9 |
+----------+----------+----------+

如果你想匹配整个集合,你可以使用这样的语法:

SELECT  *
FROM table_name
WHERE (b, c) IN ((2, 3), (7, 9))

这意味着:“同时返回所有 b2c3 的行, 或者 b7 并且 с 同时是 9。"

在上面的示例中,此查询将返回行 13

但是如果您以相反的方式重写此查询,如下所示:

SELECT  *
FROM table_name
WHERE b IN (2, 7)
AND c IN (3, 9)

,这将意味着“返回所有行,其中 b27,并且 c39)。

这将返回行 135,因为行 5 满足第二行的条件查询但不是第一个。

关于sql - mysql中 'IN'子句中的倍数 'WHERE'表达式求值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1194289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com