您可能需要尝试以下操作:
CREATE TEMPORARY TABLE IF NOT EXISTS temptable (
key1 int NOT NULL,
key2 int NOT NULL,
pos int NOT NULL auto_increment,
PRIMARY KEY (key1, key2)
)
SELECT key1, key2
FROM yourtable
ORDER BY RAND();
UPDATE yourtable
SET position = pos
FROM yourtable INNER JOIN temptable
ON yourtable.key1 = temptable.key1
AND yourtable.key2 = temptable.key2;