Mysql SQL如何替换select return的值?

Mysql SQL如何替换select return的值?,mysql,sql,select,Mysql,Sql,Select,在my database(MySQL)表中,有一列分别用1和0表示true和false 但是在SELECT中,我需要将其替换为true或false以在GridView中打印 如何让我的选择查询来执行此操作 在我当前的表格中: id | name | hide 1 | Paul | 1 2 | John | 0 3 | Jessica | 1 我需要它显示: id | name | hide 1 | Pau

在my database(MySQL)表中,有一列分别用
1
0
表示
true
false

但是在
SELECT
中,我需要将其替换为
true
false
以在GridView中打印

如何让我的
选择
查询来执行此操作

在我当前的表格中:

 id   |  name    |  hide
  1   |  Paul    |  1
  2   |  John    |  0
  3   |  Jessica |  1
我需要它显示:

  id  |  name    |  hide
  1   |  Paul    |  true
  2   |  John    |  false
  3   |  Jessica |  true

您有许多选择:

  • 使用
    TRUE
    FALSE
    布尔值与域表联接
  • 使用()

    或者,如果不支持布尔值:

    SELECT CASE WHEN hide = 0 THEN 'false' ELSE 'true' END FROM
    

  • 如果希望列作为字符串值,则:

    SELECT id, name, CASE WHEN hide = 0 THEN 'false' ELSE 'true' END AS hide
      FROM anonymous_table
    
    如果DBMS支持布尔值,则可以使用:

    SELECT id, name, CASE WHEN hide = 0 THEN false ELSE true END AS hide
      FROM anonymous_table
    

    这是相同的,只是名称
    false
    true
    周围的引号已被删除。

    您可以在select子句中使用强制转换,如:

    SELECT id, name, CAST(hide AS BOOLEAN) FROM table_name;
    

    您可以这样做:

    SELECT id,name, REPLACE(REPLACE(hide,0,"false"),1,"true") AS hide FROM your-table
    
    希望这能对你有所帮助。

    我找到了解决办法

       SELECT 
       CASE status
          WHEN 'VS' THEN 'validated by subsidiary'
          WHEN 'NA' THEN 'not acceptable'
          WHEN 'D'  THEN 'delisted'
          ELSE 'validated'
       END AS STATUS
       FROM SUPP_STATUS
    
    这是在使用案例
    这是另一种为两个以上的选项操纵所选值的方法。

    我说case语句是错误的,但这可能是一个很好的解决方案。 如果选择使用
    CASE
    语句,则必须确保至少有一个
    CASE
    条件匹配。否则,您需要定义一个错误处理程序来捕获错误。回想一下,您不必对
    IF
    语句执行此操作

    SELECT if(hide = 0,FALSE,TRUE) col FROM tbl; #for BOOLEAN Value return
    


    替换select语句本身中的值


    (移动时的情况如'966%'然后(选择替换(CAST(移动为nvarchar(MAX)),'966','0'))或移动端)

    请记住,表有名称-我们可以为您发明名称,但如果您告诉我们表的名称,则答案会更一致。由于不同的数据库管理系统之间存在差异,因此最好指定您正在使用的数据库管理系统。谢谢!下一天我会记住的!虽然它在给定REPLACE函数的情况下工作(哪个DBMS有这个功能?),但double应用程序并没有那么优雅,并且不能很好地扩展到3种或更多情况,是吗?不过,这是另一个答案。我刚刚用MySQL尝试过,如果您有3个以上的案例,那么您是对的,这不是一个很好的方法,但在这种情况下,这个解决方案就像您提到的那样有效。:)感谢您的评论我实际上喜欢这种方法,因为它有两个不同的值,而且在select语句中比在CASE/WHEN块中更容易查看。虽然这种方法有效,但它是一种技巧。Replace是一个字符串替换工具。假设发生了变化,字符串“01”代替了1。这将转换为“falsetrue”。最好对整个变量进行一些显式匹配。Mysql 5.7.19-0ubuntu0.16.04.1-要使
    作为隐藏
    工作,我必须在
    大小写周围加上括号。。。结束
    。因此:
    选择id,name,(CASE WHEN…END)作为hide FROM…
    您必须告诉您的答案有效的原因!
    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