随机取N条记录,可以使用的场景是随机抽幸运儿;
//sql方法一
SELECT `name`
FROM `xcxmall_goods` AS t1
JOIN (
SELECT ROUND( RAND( ) * ( (
SELECT MAX( id )
FROM `xcxmall_goods` ) - (
SELECT MIN( id )
FROM `xcxmall_goods` ) ) + (
SELECT MIN( id )
FROM `xcxmall_goods` )
) AS id
) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id
LIMIT 5
//sql方法二,网上都说这个高效,但我实验效率基本和上面的一致
SELECT name FROM xcxmall_goods WHERE id >= ((SELECT MAX(id) FROM xcxmall_goods )-(SELECT MIN(id) FROM xcxmall_goods )) * RAND() + (SELECT MIN(id) FROM xcxmall_goods ) LIMIT 5