【问题标题】:Update multiple rows following a pattern in mysql按照mysql中的模式更新多行
【发布时间】:2012-01-26 09:55:52
【问题描述】:

我在一列中有许多字段,名称以 field_t 开头,我必须将它们更改为 field_c

重命名示例:

field_t_detail should be field_c_detail
field_t_title should be field_c_title
field_t_id should be field_c_id
...

这是用于更改其中一个字段名称的 UPDATE 语句:

UPDATE my_table SET name  = field_c_meta WHERE name LIKE 'field_t_meta';

如何更改所有遵循此模式的字段,而不是逐个更改?

【问题讨论】:

    标签: mysql sql design-patterns field


    【解决方案1】:

    如何使用REPLACE 函数。它对你有帮助吗?

     UPDATE my_table 
        SET `name` = REPLACE(`name`, '_t_', '_c_') 
    

    REPLACE SYNTAX
    REPLACE SYNTAX

    【讨论】:

      【解决方案2】:

      您可以像这样同时更新多个字段:

      UPDATE my_table
      SET name = 'field_c_meta',
          name2 = 'field_c_meta',
          name3 = 'field_c_meta'
       WHERE name LIKE 'field_t%';
      

      如果您只想更改名称列,它应该是这样的:

      UPDATE my_table
      SET name = 'field_c' + SUBSTRING(name, 7)
       WHERE name LIKE 'field_t%';
      

      这将更新所有name from field_tSOMETHING to field_cSOMETHING

      【讨论】:

        【解决方案3】:

        这应该对你有帮助:

        name LIKE 'field_t%'
        

        将匹配所有以field_t 开头的名称。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-09-16
          • 1970-01-01
          • 1970-01-01
          • 2023-04-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多