主要记录SQL尤其是MySQL中,一些看了就忘,需要经常查的小知识点~
快速查询
1. 下划线_通配符与百分号%通配符的区别
下划线的用途与%一样,但是%能匹配0个字符不一样,_总是匹配一个字符,不能多也不能少。
2. 匹配不区分大小写
通过使用BINARY可以区分,如:
WHERE prod_name REGEXP BINARY 'JetPack .000'
3. MySQL正则表达式
正则表达式的作用是匹配文本,将一个模式(正则表达式)与一个文本串进行比较。MySQL
用WHERE子句对正则表达式提供了初步的支持,允许你指定正则表达式,过滤SELECT检索出的数据。
4. LIKE和REGEXP的区别
LIKE匹配整个列。如果被匹配的文本在列值中出现,LIKE将不会找到它,相应的行也不被返回(除非使用通配符)。而REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回。这是一个非常重要的差别。
5. 匹配
匹配字符
匹配特殊字符
为了匹配特殊字符,必须用\为前导。\-表示查找-,\.表示查找.。这种处理就是所谓的转义(escaping),正则表达式内具有特殊意义的所有字符都必须以这种方式转义。这包括.、|、[]以及迄今为止使用过的其他特殊字符。
\也用来引用元字符(具有特殊含义的字符)。
例:
定位符
例:
注:^的双重用途
^有两种用法。在集合中(用[和]定义),用它来否定该集合,否则,用来指串的开始处。
6. 文本处理函数
SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。使用Soundex()函数进行搜索,它匹配所有发音类似于Y.Lie的联系名:
拼接:将值联结到一起构成单个值。
解决办法是把两个列拼接起来。在MySQL的SELECT语句中,可使用Concat()函数来拼接两个列。