在我的数据库(MySQL)表格中,有一列1
和0
,分别代表true
和false
。
但在SELECT
中,我需要将其替换为true
或false
,以便在GridView中进行打印。
如何让SELECT
查询执行此操作?
在我目前的表格中:
id | name | hide
1 | Paul | 1
2 | John | 0
3 | Jessica | 1
我需要它显示:
id | name | hide
1 | Paul | true
2 | John | false
3 | Jessica | true
答案 0 :(得分:46)
您有多种选择:
TRUE
,FALSE
布尔值加入域表。SELECT CASE WHEN hide = 0 THEN FALSE ELSE TRUE END FROM
或者如果不支持 Boolean :
SELECT CASE WHEN hide = 0 THEN 'false' ELSE 'true' END FROM
答案 1 :(得分:24)
您可以这样做:
SELECT id,name, REPLACE(REPLACE(hide,0,"false"),1,"true") AS hide FROM your-table
希望这可以帮到你。
答案 2 :(得分:15)
如果您希望将列作为字符串值,则:
SELECT id, name, CASE WHEN hide = 0 THEN 'false' ELSE 'true' END AS hide
FROM anonymous_table
如果DBMS支持BOOLEAN,您可以改为使用:
SELECT id, name, CASE WHEN hide = 0 THEN false ELSE true END AS hide
FROM anonymous_table
除了名称false
和true
周围的引号被删除外,情况相同。
答案 3 :(得分:13)
我得到了解决方案
bri:
cards:
- slot: "1"
subslot: "0"
ports: 2
- slot: "1"
subslot: "1"
ports: 2
- slot: "1"
subslot: "2"
ports: 2
- slot: "2"
subslot: "0"
ports: 2
- slot: "2"
subslot: "1"
ports: 2
这是使用CASE 这是另一个操纵所选值的两个选项。
答案 4 :(得分:7)
您可以在select子句中使用强制转换,如:
SELECT id, name, CAST(hide AS BOOLEAN) FROM table_name;
答案 5 :(得分:1)
我说案例陈述错了,但这可能是一个很好的解决方案。
如果您选择使用CASE
语句,则必须确保至少有一个CASE
条件匹配。否则,您需要定义错误处理程序以捕获错误。回想一下,您不必使用IF
语句执行此操作。
SELECT if(hide = 0,FALSE,TRUE) col FROM tbl; #for BOOLEAN Value return
或
SELECT if(hide = 0,'FALSE','TRUE') col FROM tbl; #for string Value return
答案 6 :(得分:-2)
替换select语句本身的值......
(移动LIKE'966%'时的情况(选择REPLACE(CAST(Mobile AS nvarchar(MAX)),'966','0'))ELSE Mobile END)