PHP / MySQL查询。选择其中一个

时间:2011-02-11 17:15:34

标签: php mysql select

我试图从数据库中选择非常具体的数据,但我的查询似乎不起作用。这个查询是否正确?

SELECT * 
FROM matches 
WHERE compo_id = '1' 
    AND match_id < '5' 
    AND clan_user_id_1 = '0' 
    OR clan_user_id_2 = '0'

所以我想选择clan_user_id_1或clan_user_id_2等于零的所有匹配。

4 个答案:

答案 0 :(得分:5)

用括号括起来,这有用吗?

 SELECT * FROM matches WHERE compo_id = '1' 
 AND match_id < '5' 
 AND (clan_user_id_1 = '0' OR clan_user_id_2 = '0')

答案 1 :(得分:2)

SELECT 
  *
FROM
  matches
WHERE
  compo_id = 1
    AND
  match_id < 5
    AND
  (
    clan_user_id_1 = 0
      OR
    clan_user_id_2 = 0
  )

此外,除非你真的需要一切,否则通常最好不要 SELECT * 。明确定义您需要选择的字段。

答案 2 :(得分:2)

试试这个

SELECT * FROM matches WHERE compo_id = '1' AND match_id < '5' AND (clan_user_id_1 = '0' OR clan_user_id_2 = '0')

答案 3 :(得分:1)

当混合使用AND和OR子句时,你必须指定括号以明确说明你想要的内容。

你有

A and B and C or D

可以通过各种方式解释:

A and B and (C or D)

(A and B and C) or D