2012-03-16 100 views
0

这个场景的SQL语句是什么?if语句,修改输出

tbl_user_account 

id INT(11) 
name varchar(100) 
username varchar(25) 
password varchar(25) 
active int(1) 


_____________________________________ 
|id|name | username|password |active| 
_____________________________________ 
|1 |John | jhon123 | [email protected] | 1 | 
|2 |Maria| maria321| [email protected]  | 0 | 

我想获取所有记录,但活动现场必须输出 “YES”,如果是1或“否”,如果是0

我想这样的输出:


|id|name | username|password |active| 
_____________________________________ 
|1 |John | jhon123 | [email protected] | Yes | 
|2 |Maria| maria321| [email protected]  | No | 

我是否需要创建一个函数或只是一个if语句?

+2

注意,'INT(1)' - 了'1'实际上并没有任何限制,它只是用于显示。你可以考虑使用'BOOL'类型(它实际上是'TINYINT(1)'的同义词),但是你仍然保存3个字节。 – mpen 2012-03-16 01:17:22

回答

1

试试这个:

select id, name, username, password, if (active >0, "YES", "NO") from table_name 
+0

select * from tbl_user_account if(active> 0,“YES”,“NO”)? – rjmcb 2012-03-16 01:14:57

+2

我会简化为IF(主动,'是','否')。 '> 0'在这里并没有做任何事情...... MySQL喜欢1和0的布尔值。 – mpen 2012-03-16 01:15:41

1
SELECT id, name, username, password, 
    CASE active 
    WHEN 0 THEN "no" 
    WHEN 1 THEN "yes" 
    ELSE "Umm" 
    END 
FROM tbl_user_account