gpt4 book ai didi

mysql - 多条件mysql

转载 作者:行者123 更新时间:2023-11-29 07:33:20 24 4
gpt4 key购买 nike

我试图找到所有不包含三个字符串“加拿大”、“美国”和“美国”的行,这就是我所拥有的

SELECT 
*
FROM
`Table`
WHERE
`address` LIKE "%United States%" = 0
OR `address` LIKE "%USA%" = 0
OR `address` LIKE "%Canada%" = 0

因此,如果它有“加拿大”或“美国”或“美国”,我不知道它会显示什么。如果有这样的一个,它就适用

 SELECT 
*
FROM
`Table`
WHERE
`address` LIKE "%United States%" = 0

然后我得到了所有没有“美国”的内容,但它不适用于所有三个?

谢谢

最佳答案

首先,我认为您应该使用 NOT LIKE 而不是 LIKE = 0,但主要问题是您使用 OR 来表示否定条件,这不会给你你想要的结果。您应该使用 AND。

WHERE 
`address` NOT LIKE "%United States%"
AND `address` NOT LIKE "%USA%"
AND `address` NOT LIKE "%Canada%"

您得到了意想不到的结果,因为如果这就是 OR 的工作原理。如果它与您的情况中的三种情况中的任何一种匹配,即使它与其他两种情况不匹配。因此,其中包含“USA”的字符串无法匹配 LIKE "%USA%" 条件,但它们确实匹配其他两个条件,并且由于至少有一个 OR 条件匹配,因此它返回了该结果.

使用 AND 而不是 OR,您应该得到您期望的结果。

关于mysql - 多条件mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31821274/

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