如何使用未将通配符读取为通配符的SQLite LIKE查询

时间:2013-10-24 18:27:02

标签: sqlite

在查询碰巧有_或%通配符字符的文本字段时,我遇到了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中是不可能的吗?

1 个答案:

答案 0 :(得分:3)

在SQL中,如果使用ESCAPE声明一些转义字符,则可以转义LIKE模式中的特殊字符:

SELECT * FROM MyTable WHERE Name LIKE 'te\_t' ESCAPE '\'

(参见documentation