我的代码如下:
SELECT COUNT(_id) AS count FROM general WHERE _id = 1 CASE WHEN count > 0 THEN UPDATE general SET userGivenId = 'xxx' WHERE _id = 1 ELSE INSERT INTO general (userGivenId) VALUES ('xxx' ) END
出现错误:
android.database.sqlite.SQLiteException: near "CASE": syntax error: , while compiling: SELECT COUNT(_id) AS count FROM general WHERE _id = 1 CASE WHEN count > 0 THEN UPDATE general SET userGivenId = 'xxx' WHERE _id = 1 ELSE INSERT INTO general (userGivenId) VALUES ('xxx' ) END
这是我将使用的最短查询。为什么我这样做是因为我的其他查询将有需要更新的行,但有些可能不会被触及。使用 replace 将替换所有数据(至少在我的 Android 手机上它是这样工作的)。例如,我的 File 类将有一个 filePath,但有时来自服务器的响应将返回 null,我只是在服务器返回一个新文件时更新文件。
我忘了写什么吗?