在 SQLite 中搜索一系列字符
Search for a range of characters in SQLite
假设 table 是“t”,字段是“f”,类型是 VARCHAR
或 TEXT
。下面列出的 SQL 查询适用于 MS Access 97
。我们正在将数据库更新到 SQLite3
(早就应该了!),这些查询 return 没有结果。
此功能是否匹配(或排除)SQLite 中可用的一系列字符?
- SELECT * FROM t WHERE f LIKE '%[abcde]%'; -- 匹配包含 'a' 到 'e' 的条目
- SELECT * FROM t WHERE f LIKE '%[a-e]%'; -- 同上查询
- SELECT * FROM t WHERE f LIKE '%[^x]%'; -- 匹配不包含 'x'
的条目
为此你需要运算符 GLOB
which:
uses the Unix file globbing syntax for its wildcards
- SELECT * 从 t WHERE f GLOB '*[abcde]*'; -- 匹配包含 'a' 到 'e' 的条目
- SELECT * 从 t WHERE f GLOB '*[a-e]*'; -- 同上查询
- SELECT * 从 t WHERE f GLOB '*[^x]*'; -- 匹配不包含 'x'
的条目
还有 ?
通配符正好匹配 1 个字符。
假设 table 是“t”,字段是“f”,类型是 VARCHAR
或 TEXT
。下面列出的 SQL 查询适用于 MS Access 97
。我们正在将数据库更新到 SQLite3
(早就应该了!),这些查询 return 没有结果。
此功能是否匹配(或排除)SQLite 中可用的一系列字符?
- SELECT * FROM t WHERE f LIKE '%[abcde]%'; -- 匹配包含 'a' 到 'e' 的条目
- SELECT * FROM t WHERE f LIKE '%[a-e]%'; -- 同上查询
- SELECT * FROM t WHERE f LIKE '%[^x]%'; -- 匹配不包含 'x' 的条目
为此你需要运算符 GLOB
which:
uses the Unix file globbing syntax for its wildcards
- SELECT * 从 t WHERE f GLOB '*[abcde]*'; -- 匹配包含 'a' 到 'e' 的条目
- SELECT * 从 t WHERE f GLOB '*[a-e]*'; -- 同上查询
- SELECT * 从 t WHERE f GLOB '*[^x]*'; -- 匹配不包含 'x' 的条目
还有 ?
通配符正好匹配 1 个字符。