我的查询是
dbAdapter.selectRecordsFromDB("OmniaDB",new String[]{"imsi","type","msg","length","dt_gen","dt_send"},"type"+"="+"call"+"AND"+"dt_send"+"="+"null",null,null,null,"dt_gen");
抛出异常是
android.database.sqlite.SQLiteException: no such column: callANDdt_send: , while compiling: SELECT imsi, type, msg, length, dt_gen, dt_send FROM OmniaDB WHERE type=callANDdt_send=null ORDER BY dt_gen
答案 0 :(得分:1)
"type"+"="+"call"+"AND"+"dt_send"+"="+"null"
中缺少大量空格,应为"type='call' AND dt_send=null"
。当它应该是一个巨大的字符串时,为什么你甚至使用连接?无论如何,在您修复之后可能还有其他问题,因为我不知道您的数据是什么样的。
答案 1 :(得分:1)
"type"+"="+"call"+"AND"+"dt_send"+"="+"null"
这些都没有意义。摆脱不必要的连接离开
"type = call AND dt_send = null"
这是无效的SQL。您没有正确引用字符串call
,并且无法将NULL
与任何内容(包括NULL
)进行比较。
这更有可能是你应该使用的:
"type = 'call' AND dt_send IS NULL"
您发布的混乱可能存在其他问题,但这至少可以解决其中一个问题。 (例如,type
可能是SQLite中的保留字;我不确定。)