FTS 対応の SQLite データベースで奇妙な動作が見られます。fingerprints
という名前の列を含む という名前のテーブルがありますscan
。scan のエントリは、次のような長い文字列です。
00:13:10:d5:69:88_-58;0c:85:25:68:b4:30_-75;0c:85:25:68:b4:34_-76;0c:85:25:68:b4:33_-76;0c:85:25:68:b4:31_-76;0c:85:25:68:b4:35_-76;00:23:eb:ad:f6:00_-87; etc
MAC アドレスと信号強度を表します。ここで、テーブルで文字列の照合を行い、たとえば MAC アドレスとの照合を試みます。
SELECT _id FROM fingerprints WHERE scan MATCH "00:13:10:d5:69:88";
これは、何らかの理由で指定された文字列を含まない多くの行を返します。2番目に一致させようとするのは
SELECT _id FROM fingerprints WHERE scan MATCH "00:13:10:d5:69:88_-58";
これは以前と同じ行を返し、完全に間違っています。
SQLite は: _ -
文字を特別な方法で扱いますか?
ありがとう