我有两行的行id,我怎么能在我的查询随机之间的两个?
My query so far:
SELECT *
FROM `users`
WHERE user_id = '1'
AND active = '1'
AND id = '100'
OR id = '200'
ORDER BY RAND() LIMIT 1
所以我要做的是在id为100和id为200的行之间随机排序。
有什么办法吗?
您需要在OR
条件周围加上括号:
SELECT *
FROM `users`
WHERE user_id = '1'
AND active = '1'
AND (id = '100' OR id = '200')
ORDER BY RAND() LIMIT 1
OR
的优先级低于AND
,因此您的WHERE
子句被解释为
WHERE (user_id = '1'
AND active = '1'
AND id = '100')
OR id = '200')
使用IN
:
WHERE user_id = '1'
AND active = '1'
AND id IN ('100', '200')