[英]android.database.sqlite.SQLiteException: near "UNION": syntax error
[英]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'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.