【问题标题】:MySQL UPDATE append data into columnMySQL UPDATE 将数据追加到列中
【发布时间】:2012-12-10 20:20:30
【问题描述】:

我需要更新表名 (col1name)

如果已经有数据,我需要附加值'a,b,c' 如果它是NULL,我需要添加值'a,b,c'

我知道有一个 CONCAT 参数,但不确定 SQL 语法是什么。

update tablename set col1name = concat(ifnull(col1name, 'a,b,c'), 'a,b,c')

上面说的对吗?

【问题讨论】:

  • @FahimParkar 我没有意识到我可以使用 SQL Fiddle,但不想在实时网站上尝试一些不确定的东西。谢谢。

标签: mysql append sql-update


【解决方案1】:

试试这个查询:

update tablename set col1name = concat(ifnull(col1name,""), 'a,b,c');

Refer this sql fiddle demo.

【讨论】:

【解决方案2】:

应该这样做:

update tablename set
col1name = if(col1name is null, 'a,b,c', concat(col1name, 'a,b,c'));


或者,您可以分两步完成,让您的生活更轻松:

update tablename set col1name = '' where col1name is null;

然后

update tablename set col1name = concat(col1name, 'a,b,c');

【讨论】:

    【解决方案3】:

    您可以使用以下内容:

    update yourtable 
    set yourcol = case when yourcol is null then 'a,b,c'
                      else concat(yourcol, ' a,b,c') end
    

    SQL Fiddle with Demo

    样本数据:

    CREATE TABLE yourtable(`yourcol` varchar(50));
    
    INSERT INTO yourtable(`yourcol`)
    VALUES  ('sadsdh'),
        (NULL);
    

    将返回:

    |      YOURCOL |
    ----------------
    | sadsdh a,b,c |
    |        a,b,c |
    

    【讨论】:

      【解决方案4】:

      IFNULL(column,''),保存所有if语句,让SQL更简单!

      MySQL 5.6 架构设置

      CREATE TABLE tablename
          (`yourcol` varchar(50))
      ;
      
      INSERT INTO tablename
          (`yourcol`)
      VALUES
          ('sadsdh'),
          (NULL)
      ;
      
      UPDATE tablename SET
          yourcol = CONCAT( IFNULL(yourcol,' '), 'somevalue' )
      ;
      

      Query

      select *
      from tablename
      

      Results

      |         yourcol |
      |-----------------|
      | sadsdhsomevalue |
      |       somevalue |
      

      【讨论】:

        【解决方案5】:

        你为什么要写 ifnull 函数:很明显,如果 col1name1 为空,它连接到 null 意味着 null+'a,b,c' 只是 'a,b,c' 设置 col1name = concat(ifnull(col1name,""), 'a,b,c') 而不是这个你可以直接写 设置 col1name = concat(col1name, 'a,b,c')

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-04-28
          • 1970-01-01
          • 2012-09-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-03-13
          • 1970-01-01
          相关资源
          最近更新 更多