AND比OR优先级高,故在同时使用AND和OR进行查找时记得加上小括号,当同时存在多个条件时统一加上括号是个好习惯。
NULL不参与搜索,即使使用LIKE '%'也匹配不到值为NULL的记录。
LIKE和REGEXP的区别:
LIKE 只在列值中查找,而REGEXP在列值内查找。
如:MySQL中的正则表达式默认不区分大小写,若要区分大小写需要使用REGEXP BINARY。
MySQL中使用正则表达式匹配特殊字符使用双反斜杠\,而常规正则表达式只需要一个反斜杠来转义,使用两个反斜杠因为MySQL自己解释一个,正则表达式库解释另一个。
正则表达式字符类:
[:alnum:] 任意字母和数字,同[a-zA-Z0-9]
[:alpha:] 任意字符,同[a-zA-Z]
[:blank:] 空格和制表,同[\t]
[:cntrl:] ASCII控制字符(ASCII0到31和127)
[:space:] 包括空格在内的任意空白字符
[:upper:] 任意大写字母
[:xdigit:] 任意十六进制数字
[[:<:]] 词的开头
[[:>:]] 词的结尾不连接数据库测试正则表达式,匹配成功返回1,未匹配到返回0:
SELECT 'hello' REGEXP 'll';
则以上表达式将返回1