SELECT b_id,b_thumb2,b_league,b_date,b_status
FROM battles
WHERE (b_userid1=? OR b_userid2=?)
AND (b_status=1 OR b_status=2)
ORDER BY b_date DESC
Это даст вам результат, где b_userid равно одному из двух параметров, а статус 1 или 2.
SELECT b_id,b_thumb2,b_league,b_date,b_status
FROM battles
WHERE b_userid1=? OR b_userid2=?
AND b_status=1 OR b_status=2
ORDER BY b_date DESC
Это будет возвращать результаты, где b_userid1 является равный первому параметру или b_userid2, равно второму параметру и статусу = 1 или b_status = 2 (вероятно, порядок операций над sql является довольно сложным).
Так оно равно это:
SELECT b_id,b_thumb2,b_league,b_date,b_status
FROM battles
WHERE (b_userid1=?) OR (b_userid2=?
AND b_status=1) OR (b_status=2)
ORDER BY b_date DESC
, которая не совсем то, что вы хотите.
если знак вопроса должен быть равен нулю, это означает, что 'b_userid1 = 0' или' b_userid2 = 0 AND b_status = 1' или 'b_status = 2'. Если вы хотите получить правильный уход для [преференции] (https://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html) – SomeJavaGuy
ГДЕ (b_userid1 =? ИЛИ b_userid2 =?) И (b_status = 1 ИЛИ b_status = 2)? – jarlh
@jarlh, который сработал, спасибо – frosty