gpt4 book ai didi

mysql - 仅查询 if,if 子句返回 false mysql

转载 作者:行者123 更新时间:2023-11-30 22:38:44 25 4
gpt4 key购买 nike

我正在尝试找出一种方法来查询我在 sqlfillde 的模式使用 if 子句,基本上我需要检查表中是否有与 if label == 匹配的行?或者如果 name == ?,那么下面的查询就完成了工作。如果 sqlfiddle 滞后,我会把方案放在下面

id name      label description
1 Grams G Used to measure light weight items
1 Kilograms G Used to measure heavy weight items
3 M Liters ML Used to measure liquids
4 Grams G L Used to measure liquids

SELECT * FROM `catutype` WHERE label = "G" OR name = "Grams"

但如果匹配记录的 id == 2,我不想排除该记录。所以我试了一下,

SELECT * FROM `catutype` WHERE id!= 2 AND label = "G" OR name = "Grams"

如您所见,它没有成功。我得到的唯一解决方案是通过子查询

SELECT *,(SELECT label FROM catutype WHERE name = "Grams") as "type" FROM catutype WHERE catutype.id != 2

但我仍然无法运行两个子查询来检查标签是否匹配,为了更清楚,我将在 mysql 中编写一个我需要的简单伪代码。

if(id!=2)
{
check if label = ? OR name = ?
}

谢谢。

最佳答案

将您的查询更改为:

SELECT * FROM `cat_type` WHERE id!= 2 AND (label = "KG" OR name = "Kilo-Grams")

这是因为运算符的优先级,所以你必须使用 () 来排除条件。

说明:使用 (),它将检查 id!=2 AND 其余部分将被视为一个单独的部分表达式,即它还会检查 label = "KG"OR name = "Kilo-Grams"。因此,如果两个部分都满足,查询将给出正确的结果。

关于mysql - 仅查询 if,if 子句返回 false mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31674002/

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