Як я можу додати рядок до наявного поля в MySQL?


101

Я хочу оновити код у всіх своїх записах до того, що вони наразі плюс _стандартні ідеї?

Так, наприклад, якщо коди apple_1 та apple_2, мені потрібно, щоб вони були apple_1_standard і apple_2_standard

Перед:

id   code
------------
1    apple_1 
1    apple_2

Запит Psuedo:

update categories set code = code + "_standard" where id = 1;

Очікуваний результат:

id   code
----------------------
1    apple_1_standard 
1    apple_2_standard

Відповіді:


224

Вам потрібно використовувати CONCAT()функцію в MySQL для об'єднання рядків:

UPDATE categories SET code = CONCAT(code, '_standard') WHERE id = 1;

60
На всякий випадок, якщо хтось зіткнеться з тією ж проблемою, що і я: Якщо поле codeза замовчуванням має значення NULL, вам потрібно використовувати: UPDATE categories SET code = CONCAT(IFNULL(code,''), '_standard') WHERE id = 1;Інакше concat завжди приведе до NULL.
Кай Ноак

3
Крім того, ви можете використовувати CONCAT_WS, який пропускає значення NULL. Наприклад, SELECT CONCAT_WS(', ','First name',NULL,'Last Name'); "Ім'я, прізвище"
BarneySchmale

@Daniel Як щодо оновлення відповіді відповідно до коментарів вище?
kiedysktos

спеціальний / окреме питання для можливого випадку нульовий: stackoverflow.com/questions/14020867 / ...
qdinar

0

Оновіть поле зображення, щоб додати повну URL-адресу, ігноруючи нульові поля:

UPDATE test SET image = CONCAT('https://my-site.com/images/',image) WHERE image IS NOT NULL;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.