奇怪的sqlite行为

时间:2014-07-02 17:28:07

标签: sqlite

整个代码太长,所以我需要一些部分来理解这个案例:

CREATE TABLE contacts ( id INTEGER PRIMARY KEY, server TEXT NOT NULL, expiredaytime TEXT)

DELETE FROM contacts WHERE server=? AND expiredate is nor null OR expiredate != '' AND expiredate<=date('now')

这会在执行后删除表中的所有记录,并且不会满足“expiredate”列所具有的数据。但我只需删除colum'expiredate'中已过期日期的记录,并且不要触及其colums'expiredate'包含未过期日期或空字符串或null的其他记录。

1 个答案:

答案 0 :(得分:0)

条件解释如下:

WHERE (server=? AND expiredate IS NOT NULL)
   OR (expiredate != '' AND expiredate <= date('now'))

如果您想以不同的方式对条件进行分组,则必须自己插入适当的括号。