墨色风雨
这里有一个替代方案,但它仍然基于使用RAND(): SELECT u.id,
p.photo,
ROUND(RAND() * x.m_id) 'rand_ind'
FROM users u,
profiles p,
(SELECT MAX(t.id) 'm_id'
FROM USERS t) x WHERE p.memberid = u.id
AND p.photo != ''
AND (u.ownership=1 OR u.stamp=1) ORDER BY rand_ind
LIMIT 18这稍微复杂一些,但给出了更好的随机_ind值分布: SELECT u.id,
p.photo,
FLOOR(1 + RAND() * x.m_id) 'rand_ind'
FROM users u,
profiles p,
(SELECT MAX(t.id) - 1 'm_id'
FROM USERS t) x WHERE p.memberid = u.id
AND p.photo != ''
AND (u.ownership=1 OR u.stamp=1) ORDER BY rand_ind
LIMIT 18