gpt4 book ai didi

"WHERE"附近的 Android 数据库更新 : syntax error

转载 作者:行者123 更新时间:2023-11-29 20:32:36 27 4
gpt4 key购买 nike

我知道关于这个的问题已经太多了,相信我,我已经尽我所能阅读答案以找到解决方案。不幸的是,我找不到我的错误

这是我的代码:

SQLiteDatabase db = getWritableDatabase();

ContentValues values = new ContentValues();
values.put("eat_it", 1);
values.put("expired", 1);
String[] args = {food.name, "0"};

db.update("foods", values, "name=? AND expired=?", args);
db.close();

我想做的事情:

在表 foods WHERE 中找到一条记录 name = food.nameexpired 列的值 = 0。如果找到,SET 记录的 eat_it 列为 1expired 列为 1 .如果没有找到记录,什么也不做

这是我的创建表语法:

CREATE TABLE IF NOT EXISTS foods (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
...
eat_it INTEGER DEFAULT 0,
expired INTEGER DEFAULT 0
);

这是错误信息:

...
Caused by: android.database.sqlite.SQLiteException: near "WHERE": syntax error (code 1): , while compiling: UPDATE foods SET expired=?,eat_it=? WHERE name ='Taco Salad'WHERE expired = 0
...

谢谢你的帮助

====更新====

显然,在我重新启动计算机后,它就可以正常工作了。我认为我的模拟器工作不正常/仍然有旧代码。感谢大家的帮助

最佳答案

根据您的帖子返回的错误消息

near "WHERE": syntax error (code 1): , while compiling: UPDATE foods SET expired=?,eat_it=? WHERE name ='Taco Salad'WHERE expired = 0

从错误语句中可以清楚地看出,您的查询中有两个 WHERE 子句,因此出现了错误。

UPDATE foods SET expired=?,eat_it=? 
WHERE name ='Taco Salad'
WHERE expired = 0 <-- Here

您的UPDATE 语句应该如下所示

UPDATE foods SET expired=?,eat_it=? 
WHERE name ='Taco Salad'
AND expired = 0

关于 "WHERE"附近的 Android 数据库更新 : syntax error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31735485/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com