2014-09-30 2 views
0

В настоящее время у меня есть настройка столбца (control_reference) как varchar(120) с данными, которые выглядят примерно так: 15591_8571. Данные в этом столбце меняют первое число, но второе число всегда одно и то же. Я хотел бы добавить что-то к середине этого, так что varchar будет выглядеть примерно так в конце. Помните, что у меня есть сотни из них, поэтому я хотел найти способ изменить их все.Обновление столбца в mysql путем добавления к середине строки?

Текущие значения в control_reference

  • 15591_8571
  • 16772_8571
  • 20541_8571

Новые значения в control_reference

  • 15591_I18n_8571
  • 16772_I18n_8571
  • 20541_I18n_8571

Я знаю, что я могу использовать простой UPDATE 'database.table' SET 'control_reference'='15591_I18n_8571' WHERE'id'='some_number';, но у меня их много, чтобы сделать.

ответ

0

Создайте функцию или хранимую процедуру с помощью REPLACEcommand и используйте ее.

Простой Использование REPLACE sysntax

SELECT REPLACE('15591_8571', '_', '_I18n_') AS NewValue; 

Результат:

15591_I18n_8571 
1

Если все строки в таблице должны быть обновлены, попробуйте:

UPDATE database.table SET control_reference=REPLACE(control_reference, '_', '_I18n_') 

Чтобы ограничить обновление строки, соответствующие этому шаблону, добавьте что-то вроде:

WHERE control_reference REGEXP '[[:digit:]]+_[[:digit:]]+' 
Смежные вопросы