如何逃避' ['和']'在GLOB?

时间:2017-07-04 10:57:36

标签: sql sqlite

我试图使用GLOB运算符来确定某些字符是否以字符串形式显示:

SELECT *
FROM Test
WHERE num GLOB '*[~!?.;:+=()<>_#%&/\\]*'

适用于&#39;] [&#39;在模式的开头:

WHERE num GLOB '*[][~!?.;:+=()<>_#%&/\\]*'

但放置&#39; []&#39;模式中的任何地方:

WHERE num GLOB '*[[]~!?.;:+=()<>_#%&/\\]*'

这种行为的原因是什么?

1 个答案:

答案 0 :(得分:1)

<a href="#" onClick="window.location.reload();return false;">Cancel</a> 字符结束字符列表。因此<a href="Cancel.php>Cancel</a> 是一个仅包含]的字符列表。

空字符列表没有意义,所以作为例外,将[[]直接放在开头[])后面可以用来包含{{1}列表中的字符。但这是唯一的例外。

(出于类似的原因,作为文字字符的[必须是列表中的最后一个。)