在select语句中使OR语句更少

时间:2013-08-03 10:28:15

标签: mysql

我正在写一个select语句来获取我感兴趣的一些记录,但OR语句应该在peck顺序中排在最后,并且应该在那里改进指定的其他条件。

在此声明中,例如

select * from the_temp where the_temp_club_id = 1 OR 2 OR 3 OR 4 AND the_temp_membership_year=2000 AND the_temp_name='one';

显示包含the_temp_club_id - the_temp_club_id = 1 OR 2 OR 3 OR 4任何内容的所有记录,但不应该是这样。相反,我希望select向我显示the_temp_name = one所有记录和the_temp_membership_year=2000并显示the_temp_club_id

select语句应显示仅the_temp_name = one且其他条件应为次要的所有记录。

4 个答案:

答案 0 :(得分:2)

您可以使用IN优于OR

   where the_temp_club_id in ( 1,2,3,4)
   AND the_temp_membership_year=2000 AND the_temp_name='one'

答案 1 :(得分:2)

这是Working example

SELECT * FROM THE_TEMP 
  WHERE THE_TEMP_CLUB_ID IN (1, 2, 3,4)
  AND THE_TEMP_MEMBERSHIP_YEAR = 2000 
  AND THE_TEMP_NAME = 'one';

答案 2 :(得分:2)

  

select语句应该显示所有记录,其中the_temp_name = 1,其他条件应该是次要的。

因此,您要选择the_temp_name = one所有记录或其他条件记录。你可能正在寻找这个:

SELECT * FROM the_temp 
WHERE the_temp_name='one'
OR
(
  the_temp_club_id IN (1,2,3,4)
  AND
  the_temp_membership_year=2000
)

答案 3 :(得分:0)

select * from the_temp where (the_temp_club_id = 1 OR the_temp_club_id = 2 OR the_temp_club_id= 3 OR the_temp_club_id = 4) AND the_temp_membership_year=2000 AND the_temp_name='one';

试试这个