android– 删除查询时“<”附近的SQLiteException

android– 删除查询时“<”附近的SQLiteException,第1张

概述我试图从我的SQLite数据库中删除几行,如下所示:dbUtilsObj.delete(EngineUtiReport.TABLE_NAME,EngineUtiReport.Columns.KEY_ENGINE_UTI_UNIX_TIME+DBUtils.IS_LESS_THAN,newString[]{String.valueOf(nDaysOldUnixTime)});在上面的代码中,nDayOldTimeInMills

我试图从我的sqlite数据库中删除几行,如下所示:

dbutilsObj.delete(EngineUtiReport.table_name,     EngineUtiReport.Columns.KEY_ENGINE_UTI_UNIX_TIME + dbutils.IS_LESS_THAN,    new String[] { String.valueOf(nDaysoldUnixTime) });

在上面的代码中,nDayoldTimeInMills = 1429963811949和dbutils.IS_LESS_THAN =“<”.但我得到这个语法错误异常,我只是无法弄清楚我做错了什么:

androID.database.sqlite.sqliteException: near "<": Syntax error (code 1): , while compiling: DELETE FROM engine_utilization_report WHERE unix_time <at androID.database.sqlite.sqliteConnection.nativePrepareStatement(Native Method)at androID.database.sqlite.sqliteConnection.acquirePreparedStatement(sqliteConnection.java:1113)at androID.database.sqlite.sqliteConnection.prepare(sqliteConnection.java:686)

解决方法:

使用参数化查询时,您需要指定将参数插入查询的位置.你这样做是通过添加?参数应该去哪里.现在看一下异常中的查询,看起来很明显是错的:

DELETE FROM engine_utilization_report WHERE unix_time <

注意unix_time<在末尾?的?不见了.正确的查询应如下所示:

DELETE FROM engine_utilization_report WHERE unix_time < ?

要修复错误,您只需要添加?在where子句的末尾,像这样:

dbutilsObj.delete(EngineUtiReport.table_name,     EngineUtiReport.Columns.KEY_ENGINE_UTI_UNIX_TIME + dbutils.IS_LESS_THAN + "?",    new String[] { String.valueOf(nDaysoldUnixTime) });
总结

以上是内存溢出为你收集整理的android – 删除查询时“<”附近的SQLiteException全部内容,希望文章能够帮你解决android – 删除查询时“<”附近的SQLiteException所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1110867.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存