在 SQLite 中搜索一系列字符

发布于 2025-01-12 09:45:49 字数 411 浏览 0 评论 0原文

假设表为“t”,字段为“f”,类型为 VARCHARTEXT。下面列出的 SQL 查询适用于 MS Access 97。我们正在将数据库更新到 SQLite3(早就该更新了!),并且这些查询没有返回任何结果。

此功能是否匹配(或排除)SQLite 中可用的一系列字符?

  • SELECT * FROM t WHERE f LIKE '%[abcde]%'; -- 匹配包含 'a' 到 'e' 的条目
  • SELECT * FROM t WHERE f LIKE '%[ae]%'; -- 与上面相同的查询
  • SELECT * FROM t WHERE f LIKE '%[^x]%'; -- 匹配不包含“x”的条目

Assume the table is "t" and field is "f" and of type VARCHAR or TEXT. The SQL queries listed below work with MS Access 97. We are in the process of updating the database to SQLite3 (long overdue!), and these queries return no results.

Is this feature to match (or exclude) a range of characters available in SQLite?

  • SELECT * FROM t WHERE f LIKE '%[abcde]%'; -- match entries which contains 'a' to 'e' inclusive
  • SELECT * FROM t WHERE f LIKE '%[a-e]%'; -- same query as above
  • SELECT * FROM t WHERE f LIKE '%[^x]%'; -- match entries which do NOT contain an 'x'

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

所谓喜欢 2025-01-19 09:45:49

为此,您需要运算符 GLOB ,其中:

使用 Unix 文件通配符语法作为通配符

  • SELECT * FROM t WHERE f GLOB '*[abcde]*'; -- 匹配包含 'a' 到 'e' 的条目
  • SELECT * FROM t WHERE f GLOB '*[ae]*'; -- 与上面相同的查询
  • SELECT * FROM t WHERE f GLOB '*[^x]*'; -- 匹配不包含“x”的条目

还有 ? 通配符精确匹配 1 个字符。

For this you need the operator GLOB which:

uses the Unix file globbing syntax for its wildcards

  • SELECT * FROM t WHERE f GLOB '*[abcde]*'; -- match entries which contains 'a' to 'e' inclusive
  • SELECT * FROM t WHERE f GLOB '*[a-e]*'; -- same query as above
  • SELECT * FROM t WHERE f GLOB '*[^x]*'; -- match entries which do NOT contain an 'x'

There is also the ? wildcard which matches exactly 1 char.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文