吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1194|回复: 13
收起左侧

[求助] mysql表的数据怎么打乱顺序?

[复制链接]
coolllyy 发表于 2023-3-21 19:16
有1万条数据是按插入顺序排列的 主键id从1开始自增 现在想打乱这个表的数据重新随机排序 这个有办法吗?
举个例子
1 张三 3岁
2 李四 2岁
3 王五 8岁
4 赵六 5岁


我想把这个表打乱成


1 李四 2岁
2 赵六 5岁
3 张三 3岁
4 王五 8岁


相当于主键还是按照1开始,后面的字段随机排列,这个mysql语句要怎么写,百度找了半天也没找到写法。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Klock0828 发表于 2023-3-21 19:17
本帖最后由 Klock0828 于 2023-3-21 19:19 编辑

你可以使用MySQL中的ORDER BY RAND()来对数据进行重新随机排序。SELECT * FROM table_name ORDER BY RAND();

免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
hlking99 + 1 我很赞同!
fdjhnl + 1 + 1 热心回复!

查看全部评分

980041382 发表于 2023-3-21 19:34
[SQL] 纯文本查看 复制代码
UPDATE my_table SET id = id + FLOOR(RAND() * 10000);
SELECT * FROM my_table ORDER BY RAND();
 楼主| coolllyy 发表于 2023-3-21 19:37
我是要更新这个表,不用select语句查找,需要UPDATE,然后也是要从1开始排序,1-10000,中间不掉数字。
 楼主| coolllyy 发表于 2023-3-21 19:40
980041382 发表于 2023-3-21 19:34
[mw_shl_code=sql,true]UPDATE my_table SET id = id + FLOOR(RAND() * 10000);
SELECT * FROM my_table O ...

感谢兄弟,你第一条语句,相当于id+(1至10000)数字,这样新表不是从1-10000 id了,我想要的是新表主键还是1-10000排序,只是内容随机掉了。
Thy 发表于 2023-3-21 19:46
建个相同结构的表,用select rand形式插进去,再rename不就行了
 楼主| coolllyy 发表于 2023-3-21 19:47
Thy 发表于 2023-3-21 19:46
建个相同结构的表,用select rand形式插进去,再rename不就行了

insert into table2 select * from table1 order by rand();  我用了这个语句打乱顺序了,但是id也是跟着后面的一起的,我不知道怎么再单独把id打乱。
 楼主| coolllyy 发表于 2023-3-21 20:03
insert into  table2 (字段1, 字段2, ...)  select  (字段1, 字段2, ...)  from table1 order by rand();  只要不把id字段写进去就行了。。。。。原来这样就搞定。
mainblog 发表于 2023-3-21 20:05
你可以使用MySQL的RAND()函数生成随机数,并在ORDER BY子句中使用它来打乱结果集中的行。以下是一个示例查询,可以将表中的行随机排序:

vbnet
Copy code
SELECT * FROM your_table_name ORDER BY RAND();
在这个查询中,your_table_name是要打乱的表名,RAND()函数用于生成随机数,ORDER BY子句按随机数排序。

如果你只想随机排序特定的列,可以将它们列出来并将它们包含在SELECT子句中,例如:

vbnet
Copy code
SELECT id, name, age FROM your_table_name ORDER BY RAND();
这将按照id的插入顺序打乱name和age列的值,但保留id的原始值不变。
Dolts 发表于 2023-3-21 20:09
我怎么感觉需要用存储过程才能实现你的功能。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 23:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表