我在啓用FTS的SQLite數據庫上看到了一些奇怪的行爲。我有一個名爲fingerprints
的表,其中包含名爲scan
的列。掃描的條目是長字符串,如下所示:FTS3和FTS4匹配:, - 和_字符
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";
這將返回了很多沒有在它由於某種原因指定的字符串行。我會嘗試匹配的第二件事是
SELECT _id FROM fingerprints WHERE scan MATCH "00:13:10:d5:69:88_-58";
這將返回與之前相同的行,並且是完全錯誤的。
SQLite是否以任何特殊方式處理: _ -
字符?
感謝
謝謝,我想我應該考慮的是,即使只是爲了表現。在最初的問題,我解決了它,但不明白爲什麼。在問題中的查詢不起作用,但這個工程作品SELECT ID FROM指紋在哪裏掃描MATCH'「00:13:10:d5:69:88_-58」';(注意在雙引號周圍添加的單引號) – chopchop 2013-02-19 23:49:23
@chopchop由於「短語查詢」而起作用。請考慮閱讀由答案作者提供的鏈接,這非常有幫助。 – 2014-01-06 10:26:04