gpt4 book ai didi

mysql - 如果条件为真,则执行查询 1,否则执行查询 2

转载 作者:行者123 更新时间:2023-11-29 10:17:56 27 4
gpt4 key购买 nike

if(condition ,select t1.a,t1.b from t1 join t2 on t2.c=t1.a, select t1.a,t1.b from t1) 

但是在执行时显示错误如何克服以及如何获得结果

最佳答案

if() 可以是 SQL 语句中使用的函数。我不鼓励这种使用,因为标准构造是 case

if 也可以是控制流结构。但是,这仅在编程 block 中允许(例如存储过程和触发器)。

这里有两种方法可以在单个查询中完成您想要的操作:

select t1.a, t1.b
from t1 join
t2
on t2.c = t1.a
where condition
union all
select t1.a, t1.b
from t1
where not (condition);

或者:

select t1.a, t1.b
from t1
where (not condition) or
exists (select 1 from t2 where t2.c = t1.a);

请注意,这两个条件都假设 condition 的计算结果不为 NULL(尽管这很容易包含在逻辑中)。

关于mysql - 如果条件为真,则执行查询 1,否则执行查询 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49840990/

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