SELECT COUNT(*) WHERE location='new york'
//fetch rows
$rand=rand(0,$rows-1);
SELECT ... WHERE location='new york' LIMIT ".$rand.", 2
我有查询尝试从数据库中随机选择 2 行,我所做的是
我首先计算总行数,然后使用 rand() 随机页面
任何建议,或者有什么更好的方法可以做到这一点吗?
你可以这样尝试
SELECT ... WHERE location='new york' ORDER BY RAND() LIMIT 2
如果一切都与性能有关,我会这样做(不读取所有行)
SELECT FLOOR(RAND() * COUNT(*)) AS offset1,FLOOR(RAND() * COUNT(*)) AS offset2 FROM {table} WHERE location='new york'
SELECT * FROM {table} LIMIT $offset1, 1
SELECT * FROM {table} LIMIT $offset2, 1
我知道,3个查询,但两个都很快