You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite如何用单条GLOB语句筛选仅含指定字符的单词?

实现方法

要筛选仅由A、P、Z组成且同时包含这三个字符的单词,用GLOB的写法如下:

SELECT Word
FROM your_table
WHERE Word NOT GLOB '*[^APZ]*'
  AND Word GLOB '*A*'
  AND Word GLOB '*P*'
  AND Word GLOB '*Z*';

各部分解释

  • NOT GLOB '*[^APZ]*':排除所有包含A、P、Z以外字符的单词。[^APZ]是GLOB的否定字符类,匹配任何不在A/P/Z中的字符,前面的*表示该字符可以出现在单词的任意位置。
  • Word GLOB '*A*'/*P*/*Z*:分别确保单词中存在A、P、Z三个字符,不受顺序限制。

注意事项

  • GLOB在SQLite中默认是大小写敏感的,如果你的单词存在小写字母(如a、p、z),需要先转换为统一大小写再匹配,例如:
    WHERE UPPER(Word) NOT GLOB '*[^APZ]*'
      AND UPPER(Word) GLOB '*A*'
      AND UPPER(Word) GLOB '*P*'
      AND UPPER(Word) GLOB '*Z*';
    
  • 单纯的单个GLOB模式无法同时满足“仅含指定字符”和“同时包含所有指定字符”两个条件,因为GLOB不支持正则表达式的正向/反向断言,必须通过多个GLOB条件组合实现。

内容的提问来源于stack exchange,提问作者ColinE66

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 09:42:32