Android sqlite更新错误没有这样的列

Android sqlite更新错误没有这样的列,android,sqlite,sql-update,android-sqlite,Android,Sqlite,Sql Update,Android Sqlite,我目前正在我的android应用程序中使用sqlite进行验证和实现。其目的是创建搜索关键字历史记录。因此,在这种情况下,我希望当用户输入相同的关键字但在不同的时间时,我希望通过更新sqlite数据库中的“time”列,将该关键字向前推,使其成为最新的关键字 代码如下: ContentValues values = new ContentValues(); values.put(KEY_TIME, time); sqLiteDatabase.update(TABLE_NAME_SEARCH, v

我目前正在我的android应用程序中使用sqlite进行验证和实现。其目的是创建搜索关键字历史记录。因此,在这种情况下,我希望当用户输入相同的关键字但在不同的时间时,我希望通过更新sqlite数据库中的“time”列,将该关键字向前推,使其成为最新的关键字

代码如下:

ContentValues values = new ContentValues();
values.put(KEY_TIME, time);
sqLiteDatabase.update(TABLE_NAME_SEARCH, values, KEY_KEYWORD + " = " + keyword, null);
但它返回错误:

FATAL EXCEPTION: main
Process: com.lakupon, PID: 24030
android.database.sqlite.SQLiteException: no such column: a (code 1): , while compiling: UPDATE search SET time=? WHERE keyword = a
注意:在本例中,“a”是我输入两次的关键字,因此它试图更新“关键字”值为“a”的行中的“时间”

我不知道它为什么说没有这样的列,因为当我打印数据列表时,有一行的“关键字”值等于“a”,或者更简单一点,如果没有这样的关键字,那么代码就根本不应该运行,因为我已经在外部进行了一些验证

我也不知道为什么它会说“time=?”,因为当我打印“time”参数时,它有我想要的时间值,比如“20170724_154935”。

“a”是一个字符串,因此必须用字符串分隔符(
)括起来。
像这样:
。。。WHERE keyword='a'

试试这个

ContentValues values = new ContentValues();
values.put(KEY_TIME, time);
sqLiteDatabase.update(TABLE_NAME_SEARCH,values,KEY_KEYWORD + "=?",new String[]{keyword});