Привет, у меня проблема с обновлением SQL. Я хочу вставить случайное уникальное число от 0-2 до черновика столбца в черновике таблицы (где лобби столбцов равно 1).
У меня есть это, но оно заканчивается ошибкой: # 1093 - Вы не можете указать цельТаблица 'черновик' для обновления в предложении FROM
UPDATE draft
SET draft = (
SELECT FLOOR(RAND() * 3) AS random_num
WHERE "random_num" NOT IN (
SELECT draft FROM draft
)
)
WHERE lobby = 1
Диапазон RAND будет генерироваться динамически на уровне приложения, поэтому результат должен быть таким: 3 записи = уникальные случайные 0-2, 9 записей = уникальные числа из0-8 и т. Д.
Старт
ID DRAFT LOBBY
1 null 1
2 null 1
3 null 1
Результат
ID DRAFT LOBBY
1 1 1
2 2 1
3 0 1
Любая помощь, пожалуйста?
Редактировать
Я обновилзапрос к этому:
UPDATE draft
SET draft = (
SELECT FLOOR(RAND() * 3) AS random_num
WHERE "random_num" NOT IN (SELECT draft FROM (SELECT * FROM draft) AS temp)
)
WHERE lobby = 1
Никакая синтаксическая ошибка не появляется, но не меняет строки, не знаю почему.