如何创建条件SQL语句

时间:2013-06-20 17:09:11

标签: mysql conditional

我想创建一个条件SQL。我有一张桌子" users"它有两列(id, status)

我需要根据用户ID状态搜索用户ID。

例如: 我按照以下描述每隔5秒从数据库(通过AJAX)查询:

我们说我的墙上有以下结果(在html上):

id1: 1
status2: "A"

id2: 2
status2: "B"

我需要从表格中获取ID"用户"但如果我们的状态没有改变,请从数据库中排除ID。

所以算法应该是:

Get all IDs from table "users" but exclude the IDs (1,2) from database 
(if and only if) their status = ("A", "B").

简单地说,我需要检索所有ID,包括ID(1,2)。但对于ID(1,2):我需要检索它们,以防它们的相应状态分别不等于(" A"," B")。

但对于(1,2)之外的ID(3,4,5,...),我需要在没有任何条件的情况下检索它们。

如果数据库记录庞大且每5秒检查一次,该解决方案可提供出色的性能,我将不胜感激。

2 个答案:

答案 0 :(得分:0)

如果我理解正确,你需要这样的东西:

WHERE (id IN (1, 2) AND status NOT IN ('A', 'B'))
   OR (id NOT IN (1, 2))

这可以简化为较短的(但我认为,可读性较差):

WHERE id NOT IN (1, 2) OR status NOT IN ('A', 'B')

答案 1 :(得分:0)

这就是你要找的东西:

SELECT id FROM table1 WHERE id NOT IN
(SELECT id FROM table1 WHERE id IN (1,2) AND status IN ('A','B'))