#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 . . . Явное преобразование не требуется.