SQL如何替换select返回值?

时间:2013-05-25 19:24:33

标签: mysql sql select

在我的数据库(MySQL)表格中,有一列10,分别代表truefalse

但在SELECT中,我需要将其替换为truefalse,以便在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

7 个答案:

答案 0 :(得分:46)

您有多种选择:

  1. 使用TRUEFALSE 布尔值加入域表。
  2. 使用(as pointed in this answer

    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

除了名称falsetrue周围的引号被删除外,情况相同。

答案 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)