Как добавить строку к значению столбца в MySQL?

124

Мне нужен оператор обновления SQL для обновления определенного поля всех строк со строкой «test», которая должна быть добавлена ​​перед существующим значением.

Например, если существующее значение - «попробовать», оно должно стать «testtry».

Santanu
источник

Ответы:

262

Для этого вы можете использовать функцию CONCAT :

UPDATE tbl SET col=CONCAT('test',col);

Если вы хотите стать умнее и обновлять только столбцы, для которых еще не добавлен тест, попробуйте

UPDATE tbl SET col=CONCAT('test',col)
WHERE col NOT LIKE 'test%';
Пол Диксон
источник
16
UPDATE tablename SET fieldname = CONCAT("test", fieldname) [WHERE ...]
Фердинанд Бейер
источник
обновить БИЛЕТ set status_details = CONCAT (status _details, 'abc'), где ticket_id = 75108; ОШИБКА 1583 (42000): неправильные параметры при вызове собственной функции CONCAT
nirmesh khandelwal 01
9

Кажется, что многие функции обновления строк в MySQL работают следующим образом: если один аргумент - это nullконкатенация или другие функции nullтоже возвращаются . Итак, чтобы обновить поле nullзначением, сначала установите для него ненулевое значение, например''

Например:

update table set field='' where field is null;
update table set field=concat(field,' append');
bvidinli
источник
6

Это простой

UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);
soulmerge
источник
Исправьте до предложения WHERE, где вы объединяете test только со столбцами, уже начинающимися с test. Итак: foo -> foo footest -> footest testfoo -> testtestfoo
Юкка
0
  • UPDATE имя_таблицы SET Column1 = CONCAT ('newtring', table_name.Column1), где 1
  • UPDATE имя_таблицы SET Column1 = CONCAT ('newtring', table_name.Column2), где 1
  • UPDATE имя_таблицы SET Column1 = CONCAT ('newtring', table_name.Column2, 'newtring2'), где 1

Мы можем объединить тот же столбец или другой столбец таблицы.

user3419778
источник