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

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

可以利用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

information_schema.columns表中有一个ordinal_position字段,表示的是列标识号,其实就是字段编号,你可以看看这些字段标号是不是按照你现在有字段顺序摆列的,如果是,那么用ordinal_position排序就可以了。如果不是,而是按照你查询information_schema.columns表的顺序编的号,那么可能在建表后有过插入字段(比原来表中没有第四题字段一类的),或者修改字段名称(这个也可能修改字段编号),那么就将数据备份重建该表,这样应该就没有问题了,不过可能也需要按照ordinal_position排序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5897917.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存