c#sqlite命令格式化
本文关键字:格式化 命令 c#sqlite | 更新日期: 2023-09-27 18:28:52
在我的数据库中,我有一个条目ABCCBAA
我的查询如下:
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语句中的任何一个都能获取结果,但由于语法错误,我甚至还无法执行它。目前我正在获得
"SQL逻辑错误或缺少数据库
没有这样的栏:ABCCBAA"
为什么将其用作列名?其他例子让我相信这个问题是正确的。
我已经玩了很长时间了,所以这可能是我没有正确把握的简单事情。
您需要引用字符串,例如:
WHERE length(signature) BETWEEN 6 AND 8 AND signature LIKE 'ABCCBAA'
此外,您不需要那么多OR length(signature) BETWEEN 6 AND 8
。只需做一些类似的事情:
string sql = @"SELECT * FROM signatures
WHERE length(signature) BETWEEN 6 AND 8
AND (signature LIKE 'ABCCBAA' OR signature LIKE '_BCCBAA' ...)";