在我的數據庫中,我有一個入口ABCCBAA
C#sqlite的命令格式
我的查詢是這樣的:
string sql = SELECT * FROM signatures WHERE length(signature) BETWEEN 6 AND 8 AND signature LIKE ABCCBAA
OR length(signature) BETWEEN 6 AND 8 AND signature LIKE _BCCBAA
OR length(signature) BETWEEN 6 AND 8 AND signature LIKE A_CCBAA
OR length(signature) BETWEEN 6 AND 8 AND signature LIKE AB_CBAA
OR length(signature) BETWEEN 6 AND 8 AND signature LIKE ABC_BAA
OR length(signature) BETWEEN 6 AND 8 AND signature LIKE ABCC_AA
OR length(signature) BETWEEN 6 AND 8 AND signature LIKE ABCCB_A
OR length(signature) BETWEEN 6 AND 8 AND signature LIKE ABCCBA_
我經歷了很多的記錄本1個查詢搜索所以原諒矯枉過正。
我一直在嘗試這個查詢針對W3Schools的例子,它在放入上下文時工作正常。我知道我正在使用SQLite而不是SQL,但尚未完全使用語法。
我期望這些OR語句中的任何一個獲取結果,但由於語法錯誤,我甚至還沒有能夠執行它。爲什麼它是使用它作爲列名
:目前我得到
「ABCCBAA SQL邏輯錯誤或丟失的數據庫
沒有這樣的列」?其他例子讓我相信這個查詢是正確的。
我一直在玩這個很長一段時間,所以它可能是一些簡單的我沒有正確掌握。
看起來你正在嘗試做一種模糊字符串匹配。可能有更好的方法,如果我是你,我會查找它,例如http://en.wikipedia.org/wiki/Approximate_string_matching –
'_'匹配單個字符,因此您的查詢無法匹配不同長度的內容。 –
@TimS。感謝您指點我模糊匹配,我會看到在sql查詢中可以做些什麼。關於長度,我已經用一些更難看的代碼來解決問題了:) – Rodney