rt
解决方案 »
- phpmyadmin操作mysql那个慢,为什么呢
- 这个查询语句比较难
- windows任务计划执行mysql存储过程
- 为什么使用mysql存储过程的速度与直接用sql语句速度一样
- mysql有象Foxpro中“sort to ”这样的排序功能吗?
- MYSQL转Access遇到的问题
- Postgres的permission deniey问题
- 请问:在postgresql中把一个数据库中的表的内容复制到另一个数据库中,sql语句该怎么写?
- between and 这个命令能否表示2004-04-03<a<204-05-06
- 我安装了mysql for win2000可是 怎么建库啊,不想想象中的access,sql server ,oracle那样简单?
- liniux+postgresql 获取UUID的问题
- int应该属于sign的类型
id有其值,但shuffle没有内容,就是要用1-1024之间的随机数填补shuffle字段的空白!
随机数的应精确到小数点后3位,可以考虑下面的写法:
select floor(round(rand(),3)*1023 + 1)
我现在用如下语句去更新tbl(id, shuffle)的shuffle字段,
id不是唯一的,按照业务逻辑来讲,同样的id对应的shuffle的值应该是一样的,
即:
result 1:
id shuffle
1 640
1 640
1 640
2 370
2 370但用下边的语句更新的结果使得表中相同id后对应的值并不一样,如下:
result 2:
id shuffle
1 214
1 640
1 785
2 23
2 370
update tbl set shuffle = (select round(rand() * 1024) + 1 as shuffle);
如果希望得到result 1那样的结果,语句应该如何写呢?
update tbl set shuffle = (select round(rand() * 1024) + 1 as shuffle);
完后再按最小值更新一遍。