2016-03-31 132 views
0

我有一個歌曲數據庫。每首歌都有一個唯一的ID。如何爲數據庫中的每個id生成隨機唯一值?隨機數據庫ID

例子:

id | song name  
1 | song1 
2 | song2 
3 | song3 

洗牌

id | song name  
45 | song1 
96 | song2 
10 | song3 

任何想法後?

+1

有多少分貝的歌曲? – Matt

回答

1

結合使用FLOORRAND()可以得到你想要的。

如果在您的數據庫中有1000首歌曲。

SELECT FLOOR(RAND() * (1 - 1000 + 1)) + 1 AS ID, "song name" 
FROM yourtable 

如果在您的數據庫中有7000首歌曲。

SELECT FLOOR(RAND() * (1 - 7000 + 1)) + 1 AS ID, "song name" 
FROM yourtable 

更新..

UPDATE yourtable 
SET id = FLOOR(RAND() * (1 - 1000 + 1)) + 1; 
+0

也許他想更新他的桌子? – sagi

+0

是的。我想更新表格。 – Cosmin

+0

如果'ID'是唯一的(有意義),並且rand將兩次碰到相同的數字(同樣合理) – sagi

0

試試這個:

SELECT @nr:[email protected]+1 AS nr, tmp.* 
FROM (
    SELECT * FROM yourTable ORDER BY rand() 
) AS tmp 
CROSS JOIN (SELECT @nr:=0) AS parameter