android.database.sqlite.SQLiteException: Near "SET"



我的SQLite语法有问题。有人能帮我一把吗?谢谢!:(

代码:

public void updateHours(String newDate, String newStart, String Ends, String newNotes,String id){
SQLiteDatabase db = this.getWritableDatabase();
String query = "UPDATE " + TABLE_NAME + " SET " + COL_1 + " = '" + newDate + "' WHERE " + COL_0 + " = '" + id + "'" + " AND SET "+ COL_2 + " = '" + newStart + "' WHERE " + COL_3 + " = '" + Ends + "'" + " AND " + " SET "+ COL_4 + " = '" + newNotes + "'" ;
db.execSQL(query);
}

日志类别:

android.database.sqlite.SQLiteException: near "SET": syntax error (code 1 SQLITE_ERROR[1]): , while compiling: UPDATE ALLWORKHOURS SET DATE = 'Friday, August 12, 29' WHERE ID = '31' AND SET TIMESHIFTSTART = 'cdd' WHERE TIMESHIFTENDS = 'dddd' AND  SET NOTES = '😉😂😗😂😗😂😘😂😇😇'

运算符AND逻辑运算符,您应该而不是这样使用它:

SET column1 = value1 AND column2 = value2 AND ....

在语句末尾也只能使用1个WHERE子句

UPDATE语句的正确语法是:

UPDATE tablename
SET column1 = value1, column2 = value2, ................
WHERE condition1 AND/OR condition2..........

您的命令语法有问题。

String query = "UPDATE " + TABLE_NAME + " SET " + COL_1 + " = '" + newDate + "' WHERE " + COL_0 + " = '" + id + "'" + " AND SET "+ COL_2 + " = '" + newStart + "' WHERE " + COL_3 + " = '" + Ends + "'" + " AND " + " SET "+ COL_4 + " = '" + newNotes + "'" ;

你不能有SET column = 'asd' WHERE something AND SET column2 = 'asd'

您应该将其更改为

SET column = 'asd' AND column2 = 'asd' WHERE something

如果这些多个WHERE子句不同,则应该将该命令划分为多个命令

此外,为了更好地阅读您的查询和命令,我建议使用插值

问题是查询不能在同一查询中有多个集。我想这就是你想要做的。

UPDATE ALLWORKHOURS SET DATE = 'Friday, August 12, 29' AND TIMESHIFTSTART = 'cdd' AND 
NOTES = '😉😂😗😂😗😂😘😂😇😇  WHERE ID = '31'AND TIMESHIFTENDS = 'dddd' 

最新更新