执行查询会导致“无此列”异常

时间:2011-09-16 19:13:27

标签: android sqlite

我的查询是

 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

2 个答案:

答案 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中的保留字;我不确定。)