gpt4 book ai didi

MySQL select with all where and one or more where not

转载 作者:行者123 更新时间:2023-11-29 05:09:00 25 4
gpt4 key购买 nike

表结构和数据(我知道 IP/域字段中的数据可能没有多大意义,但这是为了说明目的):

rec_id | account_id | product_id | ip          | domain          | some_data
----------------------------------------------------------------------------
1 | 1 | 1 | 192.168.1.1 | 127.0.0.1/test | abc
2 | 1 | 1 | 192.168.1.1 | 127.0.0.1/other | xyz
3 | 1 | 1 | 192.168.1.2 | 127.0.0.1/test | ooo

表具有由 ipdomain 字段组合而成的唯一索引 ip_domain(因此不能存在两个字段中具有相同值的记录)。

在每种情况下,我都知道 account_id、product_id、ip、domain 字段的值,我需要获取具有相同 account_id、product_id 值的其他行和一个ip, domain 值(或两者)不同。

示例:我知道 account_id=1product_id=1ip=192.168.1.1domain=127.0。 0.1/test(所以它匹配 rec_id 1),我需要选择 ID 为 2 和 3 的记录(因为记录 2 有不同的域,而记录 3 有不同的 ip).

所以,我使用了查询:

SELECT * FROM table WHERE 
account_id='1' AND product_id='1' AND ip!='192.168.1.1' AND domain!='127.0.0.1/test'

当然,它返回了 0 行。看了mysql multiple where and where not in并写道:

SELECT * FROM table WHERE 
account_id='1' AND product_id='1' AND installation_ip NOT IN ('192.168.1.1') AND installation_domain NOT IN ('127.0.0.1/test')

我的猜测是这个查询是相同的(只是格式不同),所以又是 0 行。也找到了更多示例,但没有一个适用于我的案例。

最佳答案

语法是正确的,但是你使用了错误的逻辑操作

SELECT  *
FROM table
WHERE account_id='1' AND product_id='1' AND
(ip != '192.168.1.1' OR domain != '127.0.0.1/test')

关于MySQL select with all where and one or more where not,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42902714/

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