我有一个包含歌曲的数据库。每首歌都有一个独特的身份。如何为数据库中的每个id生成随机唯一值?
示例:
id | song name
1 | song1
2 | song2
3 | song3
洗牌之后
id | song name
45 | song1
96 | song2
10 | song3
有什么想法吗?
答案 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