Используется СУБД MySQL. Дана таблица
test. У неё есть два поля
id и
title - требуется добавить новую колонку, например,
new - значение в которой будет увеличиваться каждые 100 строк по символам английского алфафита. То есть 1-100 строка значение 'A', 101-200 строка значение 'B' и т.п. После значения 'Z' процесс циклически повторяется (то есть начинается снова с 'A').
Требуется сделать это одним запросом (предполагается, что соответствующий ALTER-DDL для добавления колонки
new уже сделан).
вариант (Отобразить)CODE (
SQL):
скопировать код в буфер обмена
UPDATE
test
LEFT JOIN
(SELECT
id,
@current:=FLOOR((@cur:=@cur+1)/@step)%CHAR_LENGTH(@charset) AS current,
SUBSTR(@charset, IF(@current, @current, CHAR_LENGTH(@charset)), 1) AS result
FROM
test
CROSS JOIN
(SELECT @step:=100, @cur:=@step-1, @charset:='ABCDEFGHIJKLMNOPQRSTUVWXYZ') AS init) AS newtest
ON test.id=newtest.id
SET
test.new=newtest.result