如何用AND&组合编写where子句要么

时间:2015-12-29 13:41:13

标签: android sqlite

我想使用下面的查询

( type = 1 OR type = 3 ) AND number = +9199123456

或低于一个

( type = 1 AND number = +9199123456) OR ( type = 3 AND number = +9199123456)

在我的代码中,我写了

whereClause = CallLog.Calls.NUMBER + " = " + phNO + " AND ("+CallLog.Calls.TYPE + " = " + CallLog.Calls.INCOMING_TYPE + " OR " + CallLog.Calls.TYPE + " = " + CallLog.Calls.MISSED_TYPE+")";

提前谢谢你。请帮帮我。

2 个答案:

答案 0 :(得分:1)

您对带有AND / OR的括号的使用是正确的。

您的问题是电话号码不应存储为数字,因为它们只是数字和其他字符的字符串。

如果数据库中的值是字符串,则它永远不会与数字相等。

要将值格式化为字符串,必须引用它:

... WHERE number = '+12345'

答案 1 :(得分:1)

您的查询是对的。但'number'列是一个字符串?您在电话号码前面有一个“+”,请尝试使用引号。