开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第39天,点击查看活动详情
之前在其他平台发表过的文章,今天分享在掘金,跟大家一起学习~
9.IN可以替代OR,使用IN操作符的优势:
- 在使用长的合法选项清单时,IN操作符的语法更清楚且更直观。
- 在使用IN时,计算的次序更容易管理(因为使用的操作符更少)。
- IN操作符一般比OR操作符清单执行更快。
- IN的最大优点是可以包含其他SELECT语句,使得能够更动态地建立WHERE子句。(后续介绍)
10.NOT取反
MySQL中的NOT MySQL支持使用NOT对IN、BETWEEN和EXISTS子句取反,这与多数其他DBMS允许使用NOT对各种条件取反有很大的差别。
11.LIKE操作符与通配符
(1)百分号(%)通配符,区分大小写。%代表搜索模式中给定位置的0个、1个或多个字符。 (2)下划线(_)通配符,区分大小写。下划线的用途与%一样,但下划线只匹配单个字符而不是多个字符。 (3) 使用通配符的技巧。
- 不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
- 在确实需要使用通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起来是最慢的。
- 仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。
12.使用MySQL正则表达式
(1)关键字:REGEXP
(2)基本字符匹配。REGEXP '字符串'
(3)LIKE和REGEXP的区别: LIKE与REGEXP 在LIKE和REGEXP之间有一个重要的差别。LIKE匹配整个列。如果被匹配的文本在列值中出现,LIKE将不会找到它,相应的行也不被返回(除非使用通配符)。而REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回。 REGEXP使用^和$定位符(anchor)用来匹配整个列值。
(4)匹配不区分大小写。 MySQL中的正则表达式匹配(自版本3.23.4后)不区分大小写(即,大写和小写都匹配)。为区分大小写,可使用BINARY关键字,如WHERE prod_name REGEXP BINARY 'JetPack .000'。
(4)进行OR匹配。 1000|2000。|为正则表达式的OR操作符。它表示匹配其中之一,因此1000和2000都匹配并返回。
(5)匹配几个字符之一。使用[abc]表示匹配a或b或c。使用[^abc]却匹配除这些字符外的任何东西。
(6)匹配范围。匹配[012345]这样的集合,可以用[0-5]来进行匹配。
(7)匹配特殊字符。使用转义字符“//”,如“//.”表示匹配字符“.”。
(8)匹配字符类。存在找出经常使用的数字、所有字母字符或所有数字字母字符等的匹配。
(9)匹配多个实例。使用场景:可能需要寻找所有的数,不管数中包含多少数字,或者可能想寻找一个单词并且还能够适应一个尾随的s(如果存在),等等。
(10)定位符。为了匹配特定位置的文本,需要使用表9-4列出的定位符。