mysql替换一个空值

时间:2011-01-05 11:16:13

标签: mysql replace

我想知道这是否可以来自mysql。

SELECT username FROM users_table

如果用户名是NULL,我想显示类似“未知”的内容我可以在php上做到这一点,只是想知道这件事是否值得关注:)

3 个答案:

答案 0 :(得分:6)

SELECT IFNULL(username, 'Unknown') FROM users_table

OR

SELECT COALESCE(username, 'Unknown') FROM users_table

答案 1 :(得分:2)

您可以使用IF功能。

IF(condition, if_true, if_false)

因此,您的查询是:

SELECT IF(NULL(username), "Unknown", username) FROM users_table

了解详情:http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_if

答案 2 :(得分:1)

最后但并非最不重要的是,CASE

SELECT
    CASE
        WHEN username IS NULL THEN '(Unknown)'
        ELSE username 
    END AS username
FROM users_table

我喜欢它,因为当你有复杂的表达式时很容易概括(你可以根据需要添加WHEN)并且它可以在许多DBMS中使用。

(在这种情况下,我会使用@ajreal's answer中的COALESCE。)