私のコードは次のとおりです。
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 を返す場合があり、サーバーが新しいファイルを返す場合にのみファイルを更新する必要があります。
何か書き忘れていませんか?