1

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

4

1 回答 1

3

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

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

(见文档

于 2013-10-24T20:21:35.270 回答