我想要做的是MySQL命令文本中的简单IF条件,例如:
SET @var1=(SELECT ID
FROM table_a
WHERE ID=@ID_Parameter
ORDER BY ID ASC LIMIT 1);
IF @var1 IS NOT NULL THEN
BEGIN
DELETE FROM table_b
WHERE ID=@var1;
UPDATE table_c
SET ID=@var1
WHERE ID=@ID_Parameter;
END IF;
显然这只是不起作用,它抱怨我的查询中有一个sintax错误,可以搜索谷歌,发现没有办法在这个特定情况下使用IF,任何帮助赞赏。
最诚挚的问候, 欧根
答案 0 :(得分:0)
我认为你根本不需要IF
。在delete语句中,如果@var1
为null,则计算结果为:
DELETE FROM table_b
WHERE ID = NULL
不会删除任何记录(null = null
不是true
)。
您可以随时添加:
AND @var1 IS NOT NULL;
在这种情况下,这是不必要的,在其他情况下需要它,如下面的更新声明中所示。它确实增加了代码功能的说明,所以无论如何都可以添加。
您可以将更新查询更改为:
UPDATE table_c
SET ID=@var1
WHERE ID=@ID_Parameter
AND @var1 IS NOT NULL;
通过此更改,您可以删除if
并获取您请求的功能。