所以我想运行一个并不复杂的查询,但是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值,并执行我在上面给出的整个结构中的insert
和delete
操作?也许还有更好的方法来完成这项工作。
谢谢大家!
1条答案
按热度按时间62o28rlo1#
MySQL的
IF
语法需要一个THEN
和END 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复合语句和其它可用于存储程序体的语句的语法:存储过程和函数、触发器和事件。
如果您需要条件逻辑,则需要在客户端应用程序中编写代码。