如何在MySQL中使用SELECT IF返回的布尔值

qlvxas9a  于 2023-01-04  发布在  Mysql
关注(0)|答案(1)|浏览(228)

所以我想运行一个并不复杂的查询,但是MySQL不想让我的生活变得简单,一直给出error 1064

IF EXISTS(query) AND IF NOT EXISTS(query)
BEGIN
    INSERT ...
    DELETE ...
END

现在我已经使用了这个整体结构,但我认为MySQL不支持这个结构,因为我得到了error 1064,所以我使用了下面的查询:

SELECT IF(
    EXISTS(query) AND NOT EXISTS(query), 1, 0
);

这样做效果很好,并返回正确的bool值。

我的问题是我现在如何使用这个返回的bool值,并执行我在上面给出的整个结构中的insertdelete操作?也许还有更好的方法来完成这项工作。

谢谢大家!

62o28rlo

62o28rlo1#

MySQL的IF语法需要一个THENEND IF,你没有,你需要仔细学习语法参考和例子:https://dev.mysql.com/doc/refman/en/if.html
此外,MySQL目前不允许IF/THEN/END IF超出存储例程。https://dev.mysql.com/doc/refman/8.0/en/sql-compound-statements.html表示:
本节介绍开始... END复合语句和其它可用于存储程序体的语句的语法:存储过程和函数、触发器和事件。
如果您需要条件逻辑,则需要在客户端应用程序中编写代码。

相关问题