在查询碰巧有_或%通配符字符的文本字段时,我遇到了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中是不可能的吗?
答案 0 :(得分:3)
在SQL中,如果使用ESCAPE声明一些转义字符,则可以转义LIKE模式中的特殊字符:
SELECT * FROM MyTable WHERE Name LIKE 'te\_t' ESCAPE '\'
(参见documentation)