SELECT COUNT(*) WHERE location='new york'
//fetch rows
$rand=rand(0,$rows-1);
SELECT ... WHERE location='new york' LIMIT ".$rand.", 2
我有查询尝试从db中选择2个随机行,我做的是
我首先计算总行数而不是使用rand()来随机化页面
有任何建议,或者有更好的方法吗?
答案 0 :(得分:2)
您可以尝试这样
SELECT ... WHERE location='new york' ORDER BY RAND() LIMIT 2
答案 1 :(得分:1)
如果完全是关于性能,我会这样做(不读所有行)
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个查询,但其中两个非常快