0

私はこのクエリを持っています:

SELECT queue.first_dealer, queue.second_dealer, queue.status
FROM queue
WHERE queue.status = 3
AND queue.first_dealer = $user_id
OR queue.second_dealer = $user_id
AND queue.status = 3
ORDER BY id DESC
LIMIT 5

ただし、first_dealer と second_dealer が同じ場合もあります。同じ場合は次のレコードにスキップしたいと思います。

4

3 に答える 3

0
SELECT queue.first_dealer, queue.second_dealer, queue.status
FROM queue
WHERE queue.status = 3
AND (queue.first_dealer = $user_id OR queue.second_dealer = $user_id)
AND queue.first_dealer != queue.second_dealer
AND queue.status = 3
ORDER BY id DESC
LIMIT 5
于 2012-10-08T19:44:27.397 に答える
0

WHEREステートメントでは括弧を使用する必要があります。

WHERE queue.status = 3 and
      (queue.first_dealer = $user_id OR queue.second_dealer = $user_id)

それらを同じにしたくない場合は、別の句を追加してください。

WHERE queue.status = 3 and
      (queue.first_dealer = $user_id OR queue.second_dealer = $user_id) and
      queue.first_dealer <> queue.second_dealer
于 2012-10-08T19:44:45.820 に答える
0

[operator precedence][1]AND と ORの間にあるため、WHERE 句にいくつかの括弧を追加する必要があります。次のように、一緒に属する条件をグループ化します。

SELECT queue.first_dealer, queue.second_dealer, queue.status
FROM queue
WHERE queue.status = 3
AND ( queue.first_dealer = $user_id 
      OR queue.second_dealer = $user_id)
AND queue.status = 3 AND 
queue.first_dealer <> queue.second_dealer
ORDER BY id DESC
LIMIT 5

かっこが厳密に必要ない場合でも、必要な場合はより読みやすいコードになる可能性があります。

于 2012-10-08T19:43:25.820 に答える