本文作者:kris

MySQL 随机函数获取数据速度和效率分析-mysql 随机函数获取数据速度和效率分析

kris 2025-01-23 16:42:05 3
MySQL 随机函数获取数据速度和效率分析-mysql 随机函数获取数据速度和效率分析摘要: MySQL实现随机获取几条数据的方法?1:你要随机更新的话。要先查几条随机数据。然后根据查询的数据一个特定字段去更新。但是又不能在查询的时候同时更新。会报错。要先将查询出来的存储到...

MySQL实现随机获取几条数据的方法?

1:你要随机更新的话。要先查几条随机数据。然后根据查询的数据一个特定字段去更新。但是又不能在查询的时候同时更新。会报错。要先将查询出来的存储到临时表。再进行修改。

下面是我的s_grader 表结构和我的SQL语句。就实现了随机查询两条。然后进行修改。要随机修改几条就把Limit后面的2改成几。亲测可行。

UPDATE s_grader SET Sgrad='999' WHERE Sname in ( SELECT F.Sname FROM (SELECT * FROM s_grader ORDER BY RAND() LIMIT 2) F)

MySQL 随机函数获取数据速度和效率分析-mysql 随机函数获取数据速度和效率分析

图片来源:网络

mysql随机查询若干条数据的方法?

1.随机读取连续多条记录。经过实践,可以随机读取多条连续的数据记录,里头取值的一般都是主键ID来进行最大值、最小值的读取:

SELECT * FROM example_table AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM example_table)-(SELECT MIN(id) FROM example_table))+(SELECT MIN(id) FROM example_table)) AS id) AS t2 WHERE t1.id >= t2.id ORDER BY t1.id LIMIT 5;

2.随机多条数据。以下两种都是随机读取数据,查询数据速度、随机范围都基本相差不大

SELECT * FROM example_table WHERE id >= ((SELECT MAX(id) FROM example_table)-(SELECT MIN(id) FROM example_table)) * RAND() + (SELECT MIN(id) FROM example_table) LIMIT 5;

SELECT * FROM example_table WHERE id>=(SELECT floor(RAND() * ((SELECT MAX(id) FROM example_table)-(SELECT MIN(id) FROM example_table)) + (SELECT MIN(id) FROM example_table))) ORDER BY id LIMIT 5;

文章版权及转载声明

作者:kris本文地址:https://www.damoyx.com/p/26530.html发布于 2025-01-23 16:42:05
文章转载或复制请以超链接形式并注明出处大漠游侠网

阅读
分享