Hi I have a trouble with SQL UPDATE. I want to insert random unique number from 0-2 to column draft in table draft (where column lobby is 1).
I have this, but it ends with error: #1093 - You can't specify target table 'draft' for update in FROM clause
UPDATE draft
SET draft = (
SELECT FLOOR(RAND() * 3) AS random_num
WHERE "random_num" NOT IN (
SELECT draft FROM draft
)
)
WHERE lobby = 1
RAND range will be generated dynamic on app level so the result should be like this: 3 records = unique random 0-2, 9 records = unique numbers from 0-8 etc.
Start
ID DRAFT LOBBY
1 null 1
2 null 1
3 null 1
Result
ID DRAFT LOBBY
1 1 1
2 2 1
3 0 1
Any help please?
Edit
I updated the query to this:
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
No syntax error apears, but doesnt change any row, dont know why.