我尝试使用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
答案 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';