在mysql中按照模式更新多行

时间:2012-01-26 09:55:52

标签: mysql sql design-patterns field

我的列中有很多字段,名称以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';

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

3 个答案:

答案 0 :(得分:4)

如何使用REPLACE功能。它对你有帮助吗?

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

REPLACE SYNTAX
REPLACE SYNTAX

enter image description here

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

这可以帮到你:

name LIKE 'field_t%'

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