查询恰好具有_或%通配符的文本字段时,SQLite出现了问题。
我有一个要查询“名称”字段的表。我的两个记录在我要查询的“名称”字段中具有值“ test”和“ te_t”。如果我运行如下查询
"SELECT ALL * from Table WHERE Name LIKE 'te_t'"
由于将'_'读取为通配符,因此这将同时返回'te_t'和'test'记录。我该如何做,以便仅从上述查询中获取“ te_t”记录?
我对此进行了一些研究,并读到我应该能够在通配符前添加反斜杠'\'字符,以使其可以作为普通的_字符而不是通配符来读取。但是当我尝试查询
"SELECT ALL * from Table WHERE Name LIKE 'te\_t'"
我的查询返回零个匹配项。
我究竟做错了什么?这在SQLite中是不可能的吗?
最佳答案
在SQL中,如果使用ESCAPE声明一些转义字符,则可以在LIKE模式中转义特殊字符:
SELECT * FROM MyTable WHERE Name LIKE 'te\_t' ESCAPE '\'
(请参见documentation)
关于sqlite - 如何使用通配符执行SQLite LIKE查询而不是通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19573723/