MySQL中IF语句的正确语法是什么?

Moh*_*eri 6 mysql syntax if-statement

我有一个简单的MySQL代码.但每当我运行它时,我都会收到错误#1064.你能告诉我这里的错误是什么吗?

IF ((SELECT COUNT(id) FROM tbl_states) > 0) THEN
    BEGIN
        SELECT * FROM tbl_cities;
    END
END IF
Run Code Online (Sandbox Code Playgroud)

我还使用了一些其他条件,如下面的一个,但我又一次出错了.

IF (1=1) THEN
    BEGIN
        SELECT * FROM tbl_cities;
    END
END IF
Run Code Online (Sandbox Code Playgroud)

我真正想做的是这样的事情:

IF ((SELECT COUNT(id) FROM tbl_states) > 0) THEN
    BEGIN
        UPDATE ...
    END
ELSE
    BEGIN
        INSERT ...
    END
END IF
Run Code Online (Sandbox Code Playgroud)

Oli*_*and 7

如果这是您正在编写的程序,您应该尝试:

BEGIN
    IF ((SELECT COUNT(id) FROM tbl_states) > 0) THEN
        SELECT * FROM tbl_cities;
    END IF
END
Run Code Online (Sandbox Code Playgroud)

如果它是一个查询,BEGINEND没有什么在这里做.

编辑

好吧,没有更多的话要说,IF ((SELECT COUNT(id) FROM tbl_states) > 0) THEN SELECT * FROM tbl_cities; END IF根本就是不尊重基本的MySQL SELECT语句.

你应该从SELECT......等开始......