如何使用MYSQL交换列值和如何使用Concat

时间:2012-07-24 05:33:01

标签: mysql

  1. 如何交换相同的列值?
  2. 表名

    id    value
    
    1      0
    
    2      1
    
    3      0
    
    4      1
    

    如何使用mysql查询将值0更改为1,将1更改为0?

    1. 如何打印以下o / p?
    2. 表名

      id name
      
      1   x
      
      2   y
      
      3   NULL
      

      如果名称包含值,则应打印为“Hi X”,否则如果名称为NULL,则应打印为“Hello Guest”。

      我的O / P应该如下

      name
      
      Hi X
      
      Hi y
      
      Hello Guest
      

      如何做到这一点?

      提前致谢....

1 个答案:

答案 0 :(得分:1)

<强> 1)

您可以这样做:

SELECT id, NOT value AS value
FROM tbl

NOT会将0切换为1,反之亦然。


<强> 2)

您可以将COALESCE()CONCAT()结合使用:

SELECT COALESCE(CONCAT('Hi ', name), 'Hello Guest') AS name
FROM tbl

-

  • 如果CONCAT()中至少有一项是NULL,则CONCAT()将返回NULL,无论其参数中是否有任何其他项目。

  • COALESCE()输出第一个非NULL参数。

-

因此,如果nameNULL,则CONCAT()将返回NULLCOALESCE()将输出Hello Guest