我写了如下的两条SQL语句:
 SELECT  count(*) FROM Topics WHERE AND SectionID in ('ID1, ID2') SELECT  count(*) FROM Topics WHERE AND SectionID in ('ID2, ID1')
按理说,两条语句执行结果应该是一样的,但是结果不一样
 
SELECT  count(*) FROM Topics WHERE AND SectionID in ('ID1, ID2')的结果和
SELECT  count(*) FROM Topics WHERE AND SectionID in ('ID1')一样SELECT  count(*) FROM Topics WHERE AND SectionID in ('ID2, ID1')的结果和
SELECT  count(*) FROM Topics WHERE AND SectionID in ('ID2')一样不太明白为什么,请大家解释一下

解决方案 »

  1.   

    寫法應該是:
    SELECT  count(*) FROM Topics WHERE AND SectionID in ( 'ID1', 'ID2') 
      

  2.   

    SELECT  count(*) FROM Topics WHERE SectionID ='ID1' or SectionID ='ID2' 
      

  3.   

    你的按理说是错误的。
    in('a','b')相当于 'a' or 'b' 这两个值的or
    in('a,b')  相当于'a,b'这一个值
      

  4.   

    如果用in,用引号隔开所有的子项.另,你还多个and
    SELECT  count(*) FROM Topics WHERE SectionID in ( 'ID1', 'ID2') 
      

  5.   

    呵呵 想明白了
    因为我的SectionID字段是GUID类型的,所以在in后面的括号里,每一个ID都需要有'' 括起来
    SQL语句就应该写成如下的形式
     SELECT  count(*) FROM Topics WHERE AND SectionID in ( 'ID1', 'ID2 ')