我有一个表images
,其ID从1到5000开始。在页面上,它们直接从1到5000显示。我想知道是否有可能对数据库表中的记录进行加扰而不是通过{查询它们页面上的{1}}因为它们在每次刷新时都是随机的。我不想要这个。
例如RAND()
.. id(1) to become id(343)
等等......只是加扰它们。
更新: 这是我正在尝试的查询
id(453)->id(4444)
执行时我得到alter table images add column randorder double;
update table images
set randorder = rand();
create index idx_table_randorder on table(randorder);
列randorder
但查询又返回
1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在第1行的“table images set randorder = rand()”附近使用正确的语法
答案 0 :(得分:1)
这个怎么样?
alter table add column randorder double;
update table
set randorder = rand();
create index idx_table_randorder on table(randorder);
然后你可以"洗牌"记录:
select t.*
from table t
order by randorder;
这将使用索引,因此速度很快。它是稳定的,因此它将通过分页工作。如果要更改排序,可以使用update
。
答案 1 :(得分:0)