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


124

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

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

Ответы:


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');

6

Это простой

UPDATE YourTable SET YourColumn = CONCAT('prependedString', YourColumn);

Исправьте до предложения 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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.