MySQL Query IF有多个语句

时间:2016-07-19 14:45:35

标签: c# mysql winforms

我想要做的是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,任何帮助赞赏。

最诚挚的问候, 欧根

1 个答案:

答案 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并获取您请求的功能。