mysql 随机查询一定数据

我之前一般都喜欢直接用rand函数 简单 方便

	SELECT * FROMtableorder by rand() limit  20; 	

后来数据多了之后 就开始变慢了

就搜文章 看到一个解决方案 用的join

不明觉厉,先记录一下

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 20;

真的是牛逼
参考链接

他要告别的不是一座城而是曾经的自己

猜你喜欢

转载自blog.csdn.net/weixin_43686599/article/details/123269677