在我的数据库中,我有一个入口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