选择查询中的Specefic if else语句

时间:2016-08-23 10:21:52

标签: mysql

我尝试使用IF语句进行选择查询,但它没有用,

你有任何解决方案

谢谢

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `myProcedure`()
BEGIN
   set @sql=' Select IF(field1 = 1, \'Oui\', IF(field2 != 0 and field1 = 0,\'En 

    cours\', IF(field2 = 0 and field1 = 0,\'non\', \'non\'),\'non\'))  as Payed
    from myTable';

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

   END$$
DELIMITER ;

错误消息:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '),'non')) as Payed

1 个答案:

答案 0 :(得分:1)

这个答案可能无法解决您的直接问题,但如果您使用CASE语句,逻辑会更容易阅读:

SELECT CASE WHEN field1 = 1 THEN 'Oui'
            WHEN field2 != 0 AND field1 = 0 THEN 'Encours'
            ELSE 'non'
       END AS Payed
FROM myTable

ANSI转换单引号的方法是使用其中两个,例如: ''。所以你的@sql变量看起来像这样:

SET @sql= 'SELECT CASE WHEN field1 = 1 THEN ''Oui''
        WHEN field2 != 0 AND field1 = 0 THEN ''Encours''
            ELSE ''non''
       END AS Payed
FROM myTable';