0

FMDatabaseで深刻な問題に直面しています。次のようなクエリを使用しています

SELECT * FROM `article` WHERE `alias` NOT IN ('example_alias')

「example_alias」の代わりに除外したいエイリアスのリストがある可能性があるため、「NOTIN」を使用しています。しかし、奇妙なことに、このクエリの結果には、除外したいエイリアスを持つすべてのレコードが含まれています。そのため、FMDatbaseは間違ったレコードを選択しています。このクエリをコピーしてSQLiteデータベースブラウザに貼り付けて実行すると、クエリは正しく実行されます。
「IN」の前の「NOT」を削除すると、SQLiteデータベースブラウザは指定されたエイリアスを持つすべてのレコードを表示し、予想どおり、FMDatabaseはそれらを含まないすべてのレコードを表示します...
次のステップでSELECTを置き換えますDELETEを使用しますが、不要なレコードをすべて保持し、保持したいレコードを削除すると、非常に問題が発生します。
これはFMDatabaseまたは基盤となるSQLiteフレームワーク(libsqlite3.dylibを使用しています)の既知のバグですか、それとも何か間違ったことをしていますか?

4

1 に答える 1

0

foxproでは、サブクエリを別のsqlselectステートメントとして指定する必要があります。SELECT*FROM articleWHERE aliasNOT IN(select * from'example_alias')これが解決策でしょうか?

于 2011-05-27T08:26:06.887 に答える