在MySQL中,有時需要從分組中隨機取一個記錄進行操作。這時可以使用一個小技巧來實現。
SELECT column FROM table GROUP BY column ORDER BY RAND() LIMIT 1;
以上代碼會先按照指定的列進行分組,然后隨機排序并取第一個記錄。需要注意的是,如果分組中只有一個記錄,那么這個記錄就會被返回。
如果想要在取隨機記錄的同時,還想要取出記錄對應的其它字段值,可以采用以下代碼:
SELECT * FROM table WHERE column = ( SELECT column FROM table GROUP BY column ORDER BY RAND() LIMIT 1 )
以上代碼會先從原表中篩選出符合條件的記錄,再返回這些記錄的全部字段值。需要注意的是,如果分組中只有一個記錄,那么這個記錄的所有字段值都會被返回。