MySQL IF(SELECT) 语句

Sco*_*ady 1 mysql sql

我有一个无法编译的 MySQL 语句,谁能给我一个它应该如何工作的基本示例?半伪代码:

IF (SELECT 'id' FROM terms WHERE name = 'thename' IS NULL) THEN
# Do this...
ELSE
# do this...
END IF
Run Code Online (Sandbox Code Playgroud)

我根本无法让任何 IF 语句起作用,甚至没有像这样的测试语句:

IF(1=1) 
THEN SELECT "works"
END IF
Run Code Online (Sandbox Code Playgroud)

Ker*_*mit 5

对于您的第一个示例,您没有评估条件。你需要移动IS NULL外面的SELECT

IF (SELECT 'id' FROM terms WHERE name = 'thename') IS NULL THEN
...
Run Code Online (Sandbox Code Playgroud)

如果您在SELECT语句中运行它,您可能需要使用CASE

SELECT
    CASE
        WHEN (SELECT 'id' FROM terms WHERE name = 'thename') IS NULL THEN ...
    END
Run Code Online (Sandbox Code Playgroud)

否则,请参阅IF文档