1

以下の SELECT ステートメントは、iOS 8.1 以前のバージョンでは問題なく機能しました。現在、iOS 8.2 を搭載した更新されたデバイスでは、エラーなしで結果が返されません。iOS 8.2 で SQLite のバージョンが 3.7.13 から 3.8.4 に更新されたことがわかりました。他に何も変更していないため、これが問題のようです。

SELECT * FROM allLanguages WHERE allLanguages MATCH '*searchString*' (doesn't work --> no results)

少し遊んでみると、問題は「接頭辞付き」のワイルドカード * にあるようです。これをドロップすると、結果が返されます。

SELECT * FROM allLanguages WHERE allLanguages MATCH 'searchString*' (works)

SELECT * FROM allLanguages WHERE allLanguages MATCH '*searchString' (doesn't work --> no results)

SELECT * FROM allLanguages WHERE allLanguages MATCH '*searchString*' (doesn't work --> no results)

ここで何が問題なのか知っている人はいますか?また、SELECT ステートメントは、SQL 3.8.4 で動作する別のステートメントに置き換えることができますか?

よろしくお願いします!

4

1 に答える 1

0

'"*searchString*"'を二重引用符で囲んでいくつかの調査を行った結果、うまくいきました。理由は説明できませんが、うまくいきます ;)

SELECT * FROM allLanguages WHERE allLanguages MATCH '"*searchString*"'
于 2015-03-18T10:54:27.867 に答える