2014-06-05 85 views
1

我想,如果别人对这个表写MySQL查询,如何编写MySQL查询IF ELSEIF ELSE

表名:用户

user_id | username | password | status 
1 | john | 1 | 1 
2 | jessi | 2 | 0 
3 | mark | 1 | 2 

状态:1 - 启用,0 - 禁用,2 - 删除

我写SQL来获得状态数据:

SELECT username, user_id, IF(STATUS =1, 'Enable', 'Disable') AS user_status 
FROM `users` 

怎么写的MySQL是否elseif else语句获取所有三种状态

+0

即逻辑被最合适地放置在[A'CASE'] (http://dev.mysql.com/doc/refman/5.0/en/case.html) –

+0

@Michael请问Berkowski如何为此编写案例 – user3099298

+0

请参阅下面的答案,例如...'CASE STATUS = 1 THEN'Enable'STATUS = 0 THEN'Disable'WHEN STATUS = 2 THEN'Deleted'ELSE'Unknown状态'结束' –

回答

3

您可以对此使用CASE语句。像这样:

SELECT 
    username, 
    user_id, 
    (CASE STATUS 
    WHEN 1 
    THEN 'Enable' 
    WHEN 0 
    THEN 'Disable' 
    WHEN 2 
    THEN 'Deleted' 
    ELSE 'Unknowed' 
    END) AS user_status 
FROM 
    `users` 

参考:

+0

OP有3个状态_1 - enalbe,0 - disalbe,2 - deleted_ –

+0

哦。对,我将更新答案 – Arion

+1

@MichaelBerkowski:更新答案。随着案件。感谢您指出这一点 – Arion

1

可以使用嵌套的IFS:

SELECT username, user_id, IF(`status`=1, 'Enable', IF(`status`=2, 'Deleted', 'Disabled')) AS user_status FROM `users`