Android 如何结合AND&;编写where子句;或

Android 如何结合AND&;编写where子句;或,android,sqlite,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 + " = " + Call

我想使用下面这样的查询

( 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+")";

先谢谢你。请帮帮我。

带和/或的括号的用法是正确的

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

如果数据库中的值是字符串,它将永远不会与数字进行比较

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

... WHERE number = '+12345'

你的问题是对的。但是“number”列是字符串吗?您的电话号码前有一个“+”,请尝试使用引号。

谢谢,您救了我。我不知道如何使用LIKE。是这样吗。。。类似“%=99123456%”和(type=1或type=3)的数字,这取决于您要执行的操作。这将搜索子字符串(以
=
开头)。某些子字符串被否决。也许他不知道如何解决这个问题。您可以参考以下解决方案