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

时间:2014-05-03 18:36:35

标签: mysql sql if-statement

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

这是我到目前为止所做的,似乎没有用。

IF(birthday_year='0', birthday_year='0001', birthday_year)

我想要它,以便如果birthday_year值设置为0,我希望它为0001,否则(如果它不是0,并且是一个不同的值)保持它的值;如果不是0,则不要更改该值。

4 个答案:

答案 0 :(得分:0)

语法只是IF(condition, value_if_true, value_if_false),所以很简单;

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

如果您想更新表格,请执行以下操作:

UPDATE table1 SET birthday_year = '0001' 
WHERE birthday_year = '1'

您实际上只在存储过程中使用IF语句。

请参阅:google 更具体地说:http://code.tutsplus.com/articles/an-introduction-to-stored-procedures-in-mysql-5--net-17843

虽然您可以在IF中使用select语句,但它确实没有多大意义。您宁愿使用wherecase子句。