gpt4 book ai didi

mysql - Oracle:需要帮助匹配多个条件,但将其视为一个条件

转载 作者:行者123 更新时间:2023-11-30 00:04:51 25 4
gpt4 key购买 nike

我首先查看 mysql 数据库中的记录,并生成带有排除列表的 Oracle 查询。如果 Oracle 数据库中的 value2、3 和 4 组合起来等于 where 子句中的 () 组之一,我不想匹配该行。我无法让它发挥作用,我也不知道为什么。谁能提供一些见解?

这是我当前的 Oracle 查询:

SELECT
value1,
value2,
value3,
value4
FROM
table
WHERE
AND value4 > 1
AND (value2 != '102632151' AND value3 != '1111' AND value4 != '2')
AND (value2 != '102632353' AND value3 != '1111' AND value4 != '3')
AND (value2 != '102633090' AND value3 != '1111' AND value4 != '8')
ORDER BY
value1 ASC

假设我的数据库中有五行:

value1      value2          value3          value4
__________________________________________________
1 102632151 1111 2
2 102632200 1111 2
3 102632353 1111 3
4 102633000 1111 2
5 102633090 1111 8

我的目的是返回以下行:

value1      value2          value3          value4
-------------------------------------------------------
2 102632200 1111 2
4 102633000 1111 2

但是,如果我的数据库中的 5 行如下所示:

value1      value2          value3          value4
-------------------------------------------------------
1 102632151 2222 <----- 2
2 102632200 1111 2
3 102632353 1111 3
4 102633000 1111 2
5 102633090 1111 9 <-----

查询应返回以下内容:

value1      value2          value3          value4
-------------------------------------------------------
1 102632151 2222 2
2 102632200 1111 2
4 102633000 1111 2
5 102633090 1111 9

最佳答案

我认为您希望 where 子句为:

WHERE value4 > 1 AND
NOT (value2 = '102632151' AND value3 = '1111' AND value4 = '2') AND
NOT (value2 = '102632353' AND value3 = '1111' AND value4 = '3') AND
NOT (value2 = '102633090' AND value3 = '1111' AND value4 = '8')

我认为 and not 最容易捕获您想要的逻辑。

编辑:

您也可以将其表述为:

WHERE value4 > 0 AND
(value2 <> '102632151' OR value3 <> '1111' OR value4 <> '2') AND
(value2 <> '102632353' OR value3 <> '1111' OR value4 <> '3') AND
(value2 <> '102633090' OR value3 <> '1111' OR value4 <> '8')

关于mysql - Oracle:需要帮助匹配多个条件,但将其视为一个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24663799/

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