色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql分組后隨機(jī)取n條

在MySQL中,我們經(jīng)常需要按照某個(gè)字段進(jìn)行分組,并從每個(gè)分組中隨機(jī)選取一定數(shù)量的數(shù)據(jù),這是非常常見(jiàn)的需求。

下面我們來(lái)看一下如何實(shí)現(xiàn):

SELECT *
FROM (
SELECT *
FROM 表名
ORDER BY RAND()
) tmp
GROUP BY 分組字段
LIMIT 數(shù)量;

上面的語(yǔ)句中,首先通過(guò)ORDER BY RAND()將表中數(shù)據(jù)隨機(jī)排序,然后再通過(guò)GROUP BY對(duì)數(shù)據(jù)根據(jù)分組字段進(jìn)行分組,最后再使用LIMIT來(lái)控制每個(gè)分組中選取的數(shù)量。

需要注意的是,這種方式雖然可以實(shí)現(xiàn)想要的功能,但是效率并不高,如果數(shù)據(jù)量比較大,建議使用其他更加高效的方式。

SELECT *
FROM 表名 AS t1
JOIN (
SELECT ROUND(
RAND() * (
SELECT MAX(id)
FROM 表名
)
) AS id
) AS t2
WHERE t1.id >= t2.id
GROUP BY 分組字段
LIMIT 數(shù)量;

上面的語(yǔ)句利用了子查詢和 JOIN 操作,可以更加高效地實(shí)現(xiàn)分組隨機(jī)選取的功能。