MySQL中IF和THEN的正确语法是什么



为什么我的 IF 语句不正确? - 我已经检查了 http://dev.mysql.com/doc/refman/5.1/en/if.html,但我的 MySQL 语句返回错误:#1064 - 您的 SQL 语法有误;

SET @MYVAR := '9';
IF ( @MYVAR  > '0' ) THEN
   SELECT * FROM `Table` LIMIT 1;
END IF

正确的语法是什么?

这是

MYSQL 中 IF 和 THEN 的一个例子:

CREATE FUNCTION SimpleCompare(n INT, m INT)
RETURNS VARCHAR(20)
BEGIN
DECLARE s VARCHAR(20);
IF n > m THEN SET s = '>';
ELSEIF n = m THEN SET s = '=';
ELSE SET s = '<';
END IF;
SET s = CONCAT(n, ' ', s, ' ', m);
RETURN s;
END 

错误:#1064 可能会显示,因为您可能使用 MYSQL 的内置关键字作为列名或";" 查询中可能缺少。

12.4. 控制流函数 - IF()

SET @`MYVAR` := 9;
SET @`stmt` := IF(@`MYVAR` > 0, 'SELECT * FROM `Table` LIMIT 1', 'DO (SELECT NULL)');
PREPARE `exec`  FROM @`stmt`;
EXECUTE `exec`;
DEALLOCATE PREPARE `exec`;

13.6.5.2. IF 语法

/* Procedure structure for procedure `test` */
/*!50003 DROP PROCEDURE IF EXISTS  `test` */;
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`$$
CREATE PROCEDURE `test`()
BEGIN
    SET @`MYVAR` := 9;
    IF (@`MYVAR` > 0) THEN
        SELECT * FROM `Table` LIMIT 1;
    END IF;
END$$
DELIMITER ;

if - 语法对我来说似乎很复杂。

我已经用选择案例解决了它。

最新更新