Як додати рядок до значення стовпця в MySQL?


123

Мені потрібен оператор оновлення SQL для оновлення певного поля всіх рядків за допомогою рядка "test", який потрібно додати в передній частині існуючого значення.

Наприклад, якщо існуюче значення "спробувати", воно повинно стати "тестовим".

Відповіді:


261

Ви можете використовувати функцію 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 ...]

оновити TICKET set status_details = CONCAT (статус _details, 'abc'), де ticket_id = 75108; ПОМИЛКА 1583 (42000): Неправильні параметри у виклику до нативної функції "CONCAT"
nirmesh khandelwal

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, де ви лише стислий тест до стовпців, які вже починаються з тесту. Отже: foo -> foo footest -> footest testfoo -> testtestfoo
Jukka Dahlbom

0
  • ОНОВЛЕННЯ_Ім'я_матеріали_T_T_COLTAT ('newtring', table_name.Column1), де 1
  • ОНОВЛЕННЯ_Имена таблиці_встановити стовпець1 = CONCAT ('newtring', table_name.Column2), де 1
  • ОНОВЛЕННЯ_Имена таблиці_У стовпця1 = CONCAT ('newtring', table_name.Column2, 'newtring2') де 1

Ми можемо скласти той самий стовпчик або також інший стовпець таблиці.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.