我是一名Android开发人员,最近遇到了SQLite中的GLOB子句。考虑到LIKE已经到位,我不明白为什么我们需要GLOB。
这两个子句都有通配符来表示单个和多个字符。唯一的区别是GLOB区分大小写。
但是,这就是全部吗?是否有任何疑问是LIKE不好或不合适的选择?在任何情况下,我们绝对必须使用GLOBE vs LIKE,反之亦然?
区分大小写本身是有用的,因为它与常规索引一起使用时效果更好。
此外,GLOB支持字符类:
通配规则: * 匹配零个或多个字符的任何序列。 ? 完全匹配一个字符。 [...] 匹配随附的字符列表中的一个字符。 [^...] 匹配未包含在列表中的一个字符。 使用[...]和[^...]匹配,]可以通过将字符设为[或之后的第一个字符来将其包括在列表中^。可以使用指定字符范围-。示例: [a-z]匹配任何单个小写字母。要匹配-,请将其设为列表中的最后一个字符。
通配规则:
* 匹配零个或多个字符的任何序列。
*
? 完全匹配一个字符。
?
[...] 匹配随附的字符列表中的一个字符。
[...]
[^...] 匹配未包含在列表中的一个字符。
[^...]
使用[...]和[^...]匹配,]可以通过将字符设为[或之后的第一个字符来将其包括在列表中^。可以使用指定字符范围-。示例: [a-z]匹配任何单个小写字母。要匹配-,请将其设为列表中的最后一个字符。
]
[
^
-
[a-z]