php mysql怎么随机获取几条数据

admin 2024-01-07 1300 阅读 0评论

php mysql怎么随机获取几条数据?

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

sql语句有几种写法:

1:SELECT * FROM tablename ORDER BY RAND() LIMIT 想要获取的数据条数;

2:

SELECT

*

FROM

`table`

WHERE

id >= (

SELECT

FLOOR(MAX(id) * RAND())

FROM

`table`

)

ORDER BY

id

LIMIT 想要获取的数据条数;

3:

SELECT

*

FROM

`table` AS t1

JOIN (

SELECT

ROUND(

RAND() * (SELECT MAX(id) FROM `table`)

) AS id

) AS t2

WHERE

t1.id >= t2.id

ORDER BY

t1.id ASC

LIMIT 想要获取的数据条数;

4:

SELECT

*

FROM

`table`

WHERE

id >= (

SELECT

floor(

RAND() * (SELECT MAX(id) FROM `table`)

)

)

ORDER BY

id

LIMIT 想要获取的数据条数;

5:

SELECT

*

FROM

`table`

WHERE

id >= (

SELECT

floor(

RAND() * (

(SELECT MAX(id) FROM `table`) - (SELECT MIN(id) FROM `table`)

) + (SELECT MIN(id) FROM `table`)

)

)

ORDER BY

id

LIMIT 想要获取的数据条数;


6:

SELECT

*

FROM

`table` AS t1

JOIN (

SELECT

ROUND(

RAND() * (

(SELECT MAX(id) FROM `table`) - (SELECT MIN(id) FROM `table`)

) + (SELECT MIN(id) FROM `table`)

) AS id

) AS t2

WHERE

t1.id >= t2.id

ORDER BY

t1.id

LIMIT 想要获取的数据条数;


反馈:

实测 38万数据,随机取10条

1 可以随机取值,执行时间1-2秒。 

2 运行超过20秒没反应,试了3次。 

3 取的10条数据是连续的ID,执行0.001秒。

4 随机取10条,id在1-4000之间,执行0.003秒,试了10次以上。 

5 随机取10条,id在1-4000之间,执行0.003秒,试了10次以上。 

6 取的10条数据是连续的ID,执行0.001秒。


喜欢就支持以下吧
点赞 0

发表评论

快捷回复: 表情:
aoman baiyan bishi bizui cahan ciya dabing daku deyi doge fadai fanu fendou ganga guzhang haixiu hanxiao zuohengheng zhuakuang zhouma zhemo zhayanjian zaijian yun youhengheng yiwen yinxian xu xieyanxiao xiaoku xiaojiujie xia wunai wozuimei weixiao weiqu tuosai tu touxiao tiaopi shui se saorao qiudale qinqin qiaoda piezui penxue nanguo liulei liuhan lenghan leiben kun kuaikule ku koubi kelian keai jingya jingxi jingkong jie huaixiao haqian aini OK qiang quantou shengli woshou gouyin baoquan aixin bangbangtang xiaoyanger xigua hexie pijiu lanqiu juhua hecai haobang caidao baojin chi dan kulou shuai shouqiang yangtuo youling
提交
评论列表 (有 0 条评论, 1300人围观)

最近发表

热门文章

最新留言

热门推荐

标签列表