Parantez ile sql sorgusu ile yardımcı

4 Cevap php

i kodu şu var:

SELECT *
FROM table
WHERE thread = $thread
AND (user != $user1 OR user != $user2)

i kod $ konu içerdiği tüm satırları almak istiyorum ama kullanıcı değil $ birey1 veya $ birey2 olduğunu.

Benim kod doğru mu? ya da gibi olmalıdır:

SELECT *
FROM table
WHERE thread = $thread
(AND user != $user1 OR user != $user2)

şimdiden teşekkürler

4 Cevap

Bunu kullanın:

SELECT *
FROM table
WHERE thread = $thread
(AND user != $user1 AND user != $user2)

Kullanıcı user1 veya birey2, bu nedenle kullanarak 'VE' ya olup olmadığını istemiyorum çünkü burada uygun seçenek olacaktır.

$thread tamsayı alanı değilse Ayrıca, örneğin tırnak içine gerekir:

WHERE thread = '$thread'

Kullanın:

SELECT t.*
  FROM TABLE t
 WHERE t.thread = mysql_real_escape_string($thread)
   AND t.user NOT IN (mysql_real_escape_string($user1), mysql_real_escape_string($user2))

Lütfen use mysql_real_escape_string, veya risk SQL injection attacks.

Ayrıca kullanabilirsiniz

SELECT *
FROM table
WHERE thread = '$thread'
AND user NOT IN ($user1, $user2)

Daha hızlı çalıştırır hangi biliyorum, ama o daha iyi okunabilirliği seviyorum, çünkü bu benim tercih edilen yoldur etmeyin.

Ben de yerine gerektiğini düşünüyorum! =

Yani:

SELECT *
FROM table
WHERE thread = $thread
AND user <> $user1
AND user <> $user2