随机查询用这个么?
select * from table_name order by rand() limit 0,1000;
有更快的SQL层实现的
你这种写法的SQL在上万条的表相当慢.
下面介绍随机查询两种方法,
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
1;
20万条,一秒
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
1;
20万条,半秒 |