PHP Mysql从两个id中选择随机行


PHP Mysql select random rows from two IDs?

我有两行的行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')