sql - 在SQL中,如何使用LIKE匹配最多(但不超过)个通配符?

标签 sql sqlite

例如。在正则表达式中,我们可以使用{n,m}来指定我们要与前一个元素至少匹配n次,但不超过m次。

有没有一种方法可以在SQL(特别是sqlite)中做到这一点,即我们最多将通配符'_匹配5次,但不超过5次?

例如。我想在字母j和z之间最多5个字符

所以我会得到Jaz或Jaaaaaz,但不会得到Jaaaaaaz

谢谢!

最佳答案

要回答您的特定问题,您可以使用

WHERE col LIKE 'J%z' AND LENGTH(col) < 8


例如

SELECT 'Jaaaz' LIKE 'J%z' AND LENGTH('Jaaaz') < 8, 'Jaaaaaaz' LIKE 'J%z' AND LENGTH('Jaaaaaaz') < 8


输出量

1    0

关于sql - 在SQL中,如何使用LIKE匹配最多(但不超过)个通配符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52067541/

相关文章:

python - 导入错误:没有名为 '_sqlite3' 的模块

java - 如何在android中将单行数据存储到sqlite数据库的字符串数组中

聚合函数上的 SQL 比较

sql - 来自两个表的sql sum

ruby-on-rails - 如何将 SQLite3 与 Ruby On Rails 一起使用?

Android 的 SQLite 数据库 : Failing to Open a Writeable Instance of a DB Because Could not setLocale()

php - SQL 查询不等于运算符不工作,使用 JOIN

sql - 如果两行相等,如果最大值,我如何返回两个值?

java - 使用 LogicalConnection 传递数组/表 Oracle 类型

android - 如何在插入数据库时​​立即检索插入的值