sqlite - 如何使用通配符执行SQLite LIKE查询而不是通配符

标签 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中是不可能的吗?

最佳答案

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

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


(请参见documentation

关于sqlite - 如何使用通配符执行SQLite LIKE查询而不是通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19573723/

相关文章:

sql-server - 使用 Sqlite In Memory DB 进行单元测试 MSSQL-DB

java - 当 SQLiteDatabase.rawQuery() 工作正常时,SQLiteDatabase.query() 出现问题

android - 在sqlite数据库android中插入日期时间

android - 如何从Google云端硬盘或任何其他服务器上托管的db文件填充sqlite数据库

java - 如何在sqlite android中通过循环限制添加的数据

sql-server - 使用 Sync Framework 将 SQLite 与 SQLServer 同步

java - 无法在 Android 上打开 sqlite 数据库

sqlite - 适用于Xamarin应用程序的SQLite vs Couchbase Lite

sqlite - Core Data sqlite存储单表由于继承弊端?

java - 尝试存储SQLite数据时,我的Android应用程序崩溃