1

Android プロジェクトの sqlite で FTS3 を使用しています。問題は、「または」という単語を検索すると、データベースがより多くの単語を期待することです。

"SELECT * FROM words WHERE Palabra MATCH '"+word+"'";

これは、単語が「または」の場合を除いてうまく機能します。

データベースで「または」という単語を検索するにはどうすればよいですか?

エラーは次のとおりです。

    android.database.sqlite.SQLiteException: malformed MATCH expression: [OR] (code 1)
    at android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow(Native         Method)
    at    android.database.sqlite.SQLiteConnection.executeForCursorWindow(SQLiteConnection.java:845)
    at       android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:836)
    at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)
    at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:144)
    at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:133)

ありがとう

4

1 に答える 1

0

「OR」という単語 (または他の MATCH 式のキーワード) を検索するには、それらを引用符で囲む必要があります (二重引用符は通常、フレーズ検索に使用され、単一の単語には無害です)。

sqlite> select * from t where t match 'NOT OR';
Error: malformed MATCH expression: [NOT OR]
sqlite> select * from t where t match '"NOT" "OR"';
TO BE OR NOT TO BE

一致表現のキーワードは大文字と小文字を区別するため、「または」という単語の検索は問題なく機能します。小文字の検索語のみを使用するのが最も簡単な場合があります。

sqlite> select * from t where t match 'not or';
TO BE OR NOT TO BE
于 2013-09-16T19:16:17.767 に答える