1

我试图从这个基本查询中排除结果:

SELECT PageID, PlanID
FROM table
WHERE PlanID = 1 
AND PageID in !=0

这是一个映射表,用于将博客等对象连接到标签、标签到图像等。

我的问题是这个查询还有其他结果..

PlanID = 1 - PageID = 234 - OtherID = 0
PlanID = 1 - PageID = 234 - OtherID = 456

实际上,这就是我想写的:

SELECT PageID, PlanID 
FROM table
WHERE PlanID = 1 
AND PageID !=0
AND OtherID = 0
AND OtherID = 0
AND OtherID = 0
AND OtherID = 0
AND OtherID = 0

我不想一遍又一遍地写大量的“OtherID's = 0”,因为这是一个动态查询,“PageID”可以是“OtherID”中的任何一个。

有没有办法排除所有的'OtherID's而不必写出来,或者必须在我的代码中做某种类型的动态,用'OtherID's = 0切换!= 0 ID

就像是:

SELECT PageID, PlanID 
FROM table
WHERE PlanID = 1 
AND PageID !=0
AND AllOtherFields = 0

我怎样才能请求一个不同的查询,只说 pageID !=0 和 planID =1 或者只是将我不寻找的所有字段归零..?

4

1 回答 1

0

这是你想要的吗?

SELECT PageID, PlanID
FROM table
WHERE PlanID = 1 and
      PageID <> 0 and
      OtherId <> 0

注意:您可以使用!=<>。它们是等价的。

如果要检查所有其他字段是否为 0,可以执行以下操作:

SELECT PageID, PlanID
FROM table
WHERE PlanID = 1 and
      PageID <> 0 and
      0 not in (OtherId1, otherid2, otherid3, . . . )
于 2013-03-03T20:19:29.537 回答