MySQL IF语句,IF SET,ELSE什么都不做?

MySQL IF语句,IF SET,ELSE什么都不做?,mysql,sql,if-statement,Mysql,Sql,If Statement,我总是在下面的语句中遇到语法错误 这就是我到目前为止所做的,但似乎不起作用 IF(birthday_year='0', birthday_year='0001', birthday_year) 我希望这样,如果生日年值设置为0,我希望它为0001,否则如果它不是0,并且是另一个值,请保留该值;如果值不是0,则不要更改它。语法是简单的IFcondition、value\u if\u true、value\u if\u false,非常简单 SELECT IF(birthday_year='0',

我总是在下面的语句中遇到语法错误

这就是我到目前为止所做的,但似乎不起作用

IF(birthday_year='0', birthday_year='0001', birthday_year)
我希望这样,如果生日年值设置为0,我希望它为0001,否则如果它不是0,并且是另一个值,请保留该值;如果值不是0,则不要更改它。

语法是简单的IFcondition、value\u if\u true、value\u if\u false,非常简单

SELECT IF(birthday_year='0', '0001', birthday_year) birthday_year
FROM ... 

如果这是select语句的一部分,则可以使用:

   SELECT 
        CASE 
               WHEN BIRTHDAY_YEAR='0'
                    THEN '0001'
               ELSE BIRTHDAY_YEAR
        END AS COLUMN_NAME 
   FROM TABLE_NAME 

根据您的表架构,您可能需要使用整数而不是字符串:

SELECT IF(birthday_year=0, 0001, birthday_year) FROM someTable; 

如果要更新表,请执行以下操作:

UPDATE table1 SET birthday_year = '0001' 
WHERE birthday_year = '1'
实际上,您只在存储过程中使用IF语句

见: 更具体地说:


虽然可以在select中使用IF语句,但它实际上没有多大意义。您更愿意使用where或case子句

这是select语句的一部分吗?是的,抱歉没有提到。它是SELECT语句的一部分。谢谢请不要因为提出问题而道歉。也不要加上谢谢。这些东西被认为是堆栈溢出上的噪声。