Обновите несколько строк, следуя шаблону в MySQL - PullRequest
1 голос
/ 26 января 2012

У меня есть много полей в столбце с именем, начинающимся с 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 ]

5 голосов
/ 26 января 2012

Как насчет использования функции REPLACE.Вам это помогает?

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

ЗАМЕНА СИНТАКСА
ЗАМЕНА СИНТАКСА

enter image description here

1 голос
/ 26 января 2012

Вы можете обновить несколько полей одновременно следующим образом:

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.

0 голосов
/ 26 января 2012

Это должно помочь вам:

name LIKE 'field_t%'

Все имена, начинающиеся с field_t, будут совпадать.

...