随机数据库ID

时间:2016-03-31 08:34:50

标签: mysql sql random

我有一个包含歌曲的数据库。每首歌都有一个独特的身份。如何为数据库中的每个id生成随机唯一值?

示例:

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

洗牌之后

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

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

使用-Dsun.security.smartcardio.t0GetResponse=false -Dsun.security.smartcardio.t1GetResponse=false FLOOR的组合来获得您想要的内容。

如果你的数据库中有1000首歌曲。

RAND()

如果你的数据库中有7000首歌曲。

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

更新..

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

答案 1 :(得分:0)

ID必须是整数吗?如果没有,你可以考虑使用 GUIDS 。如果您有可能这样做,那么您可以在此处获得有关迁移表格的更多信息: Generate GUID in MySQL for existing Data?

答案 2 :(得分:0)

试试这个:

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