mysql怎样将里面的数据全部打乱重新存储

 我来答
tjrmgs
2017-02-05 · TA获得超过5765个赞
知道大有可为答主
回答量:2161
采纳率:94%
帮助的人:1026万
展开全部
可以利用rand函数排序源表数据,再插入回源表。请参考下列实验:

假设有学生表存储数万行记录,结构如下
student(sid char(10) 主键,sname,sex,dob )
执行下面系列查询将原有记录打乱插入回学生表:

-- 创建一个结构与学生表结构相同的中间过渡表
create table s1 (sid char(10) primary key,
sname varchar(50),sex char(1),dob date);
-- 将学生表中的数据插入到s1
insert into s1 select * from student;
-- 清空学生表
truncate table student;
-- 将中间过渡表s1中的记录打乱插入回学生表
insert into student select * from s1 order by rand();
-- 删除过渡表
drop table s1;
追答
不过需要指出的是表记录的先后次序其实并不重要,对记录进行各种排序很方便的。除非有特别的需要,没必要这样做的。
一颗程序猿o_0
2017-02-05 · TA获得超过6297个赞
知道大有可为答主
回答量:5403
采纳率:77%
帮助的人:1339万
展开全部
然而,并没有什么用处
数据库在存储数据的时候, 基本上可以认为是"没有顺序的", 即使你强制它按照某个顺序存储, 也没啥用处, 而且过一段时间他自己就乱了(数据延展性等问题)
但是由于索引的关系, 数据可能在存储的物理介质上有一定的顺序, 但是为了查询效率的
你如果就是想做个实验之类的, 可以把现有的索引删掉, 然后重新制定一个聚簇索引, 这样他的存储顺序会发生变化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式