Как редактировать содержимое около 2000 значений полей в таблице MariaDB?

#sql #mariadb

Вопрос:

Мне нужно было бы отредактировать и изменить содержимое примерно для 2000 значений полей в моей базе данных «alyssa» для таблицы «продукты» и для всего ее поля «ProductID».

Каждый идентификатор продукта имеет цифровой формат «1234567890». Мне нужно было бы изменить все эти цифровые идентификаторы в соответствии со следующим форматом: «alyssa-PROD-1234567890-1».

Так, например, если бы идентификатор продукта был похож на «3298374237», его необходимо было бы изменить на формат «alyssa-PROD-3298374237-1».

Фиксированными значениями являются «alyssa-PROD-» и «-1». Они не будут меняться.

Пожалуйста, не могли бы вы любезно помочь мне сформировать скрипт / команду, которую я мог бы запустить, чтобы пакетно изменить все идентификаторы продуктов в описанный формат?

Заранее большое вам спасибо! 🙂 С уважением, Алисса

Комментарии:

1. Обратите внимание, что в вашей таблице есть столбцы , а не поля.

2. Покажите нам некоторые примеры табличных данных и ожидаемый результат в виде правильно отформатированного табличного текста. Также покажите нам вашу текущую попытку запроса.

Ответ №1:

Вы можете использовать update :

 update t
    set productId = concat('alyssa-PROD-', productId, '-1');
 

Примечание: Предполагается, что productId это хранится в виде строки, хотя строка состоит только из цифр. Если вы хотите, чтобы преобразовывались только числовые строки:

 update t
    set productId = concat('alyssa-PROD-', productId, '-1')
    where productId regexp '^[0-9] 


Комментарии:

1. concat('alyssa-PROD-', cast(productId as char), '-1') в случае, если ProductID имеет числовой тип столбца.

2. @GeorgRichter . . . Явное преобразование не требуется.

;

Комментарии:

1. concat('alyssa-PROD-', cast(productId as char), '-1') в случае, если ProductID имеет числовой тип столбца.

2. @GeorgRichter . . . Явное преобразование не требуется.