1. SQL Like对时间查询
时间格式的数据为各种各样,不方便查询。在使用like模糊查询时,先将数据转换为统一的格式,这样在使用like查询时就方便多了。
2. SQL like对特殊字符
在sql查询过程中,动态sql,需将字符数据的单引号',改为两个单引号''。
而在模糊查询中,需使用通配符来匹配数据。如果数据中含有通配符,且需使用模糊查询,则应该特殊处理。
通配符:
_或?:任意单个字符。只能匹配一个字符或一个汉字。如:a_b
[]:匹配一定范围([a-Z])或集合([abcdef])中的任何单个字符。如:[a-Z],[a],[a|b]
[^]或[!]:匹配不属于指定范围(如:[a-Z])或集合[abcdef]的任何一个字符。如:[^a-Z]
%或*:一个或多个字符。
#:任何一个数字字符(0-9)。
模糊查询含有上述特殊字符时,可以将通配符模式匹配字符串用作文字字符串,方法就是将通配符放在括号中。
[ -----> [[] (这个必须是第一个要替换的)
% ------> [%]
_ -------> [_]
^ -------> [^]
示例:
1) a_b... like a[_]b%
2) a%b... like a[%]b%
3) a[b... like a[[]b%
4) a]b.... like a]b% ("]"不需要特殊处理)
5) a[]b... like a[[]]b%
6) a[^]b... like a[[][^]]b%
7) a[^^]b... like a[[][^][^]]b%
3. SQL Like 通配符特殊用法:Escape
1) 使用 ESCAPE 关键字定义转义符。 在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符.
like '%5/%%' escape '/' 表示字符'/'是普通字符,匹配的数据含有'5%'字符串的数据。
2) ESCAPE 'escape_character' 允许在字符串中搜索通配符而不是将其作为通配符使用。 escape_character 是放在通配符前表示此特殊用途的字符。 SELECT * FROM finances WHERE description LIKE 'gs_' ESCAPE 'S' 意思就是: 比如,我们要搜索一个字符串 "g_" ,如果直接 like "g_",那么 "_"的作用就是通配符,而不是字符,结果,我们会查到比如 "ga","gb","gc",而不是我们需要的 "g_". 用 LIKE 'gs_' ESCAPE 'S' 's'表示特殊用法标志