2013-04-30 68 views
1

我不是很强大的SQL,所以你可以帮助吗?更新ID列与随机值

我有100行 我需要改变它们的ID为随机值

现在是1,2,3,4,5,6,7 我想28,30,19,1表,84等

我该怎么办?

p.s.这个数据库用于照相馆,照片的顺序取决于他们的ID。 我想改变id,让顺序变得不同。

+1

你正在寻找刚刚任何随机值? ID可以重复吗?你在试图洗牌吗? – 2013-04-30 21:39:03

回答

1

您将无法更改随机事件的自动生成ID。您可以自己生成ID,但您需要检查以确保它尚未使用。

一个更简单的办法是没有照片的ID进行排序 - 可以代替试试这个:

SELECT * 
FROM photos 
ORDER BY RAND() 

这也将拍出的照片每次出现在不同的顺序(我不知道这是你试图达到的目标)。

+0

那么,它不工作,因为照片是由他们的ID显示。但我创立了另一个棘手的解决方案 - 我创建了另一列“id-2”,生成随机数字,删除“id”并将其更名为“id” 这不坏?或者它是? – 2013-05-01 21:56:37

+0

RAND()会在某个时刻产生重复的数字 - 它们不是唯一的。所以你不能使用它们作为id值 - 最终你会得到两张具有相同随机ID的照片。如果你需要进一步的帮助,你需要把你的查询和表结构放在你的问题中,因为很难猜测你在做什么! – Richard 2013-05-02 07:41:07

0

你不应该改变他们的ID。如果你希望它们随机出现,你应该在ORDER BY子句中使用RAND()。

下面是一个SQL小提琴例: http://sqlfiddle.com/#!2/be776/1