四、MySQL数据库之通配符

四、MySQL数据库之通配符,第1张

    本节主要介绍在“like” *** 作符的搭配下,通配符的使用, 常用的通配符有"% " 、"_"、"[ ]"、"[^ ]"、"[! ]"等

    本节使用的表依然是上一次使用的表,表名: customer ,表有列: cus_id,cus_no,cus_name,cus_age,cus_adds。

通配符"%"解析:

1) "***%" 表示匹配任意字符开头的数据,如cus_name like '张%' 代表匹配姓名以“张”开头的所有客户信息; eg:select * from customer where cus_name like '张%'

2) "%***" 表示匹配任意字符结尾的数据,如cus_age like "%8" 代表匹配年龄以“8”结尾的所有客户信息; eg:select * from customer where cus_age like '%8'

3) "%***%"表示匹配包含任意字符的数据,如cus_id like "%100%" 代表匹配id包含“100”的所有客户信息; eg:select * from customer where cus_id like '%100%'体验

4) "*_" 表示匹配任意一个字符开头的数据,只能以一个字符开头,如cus_name like '_**' ,代表匹配姓名后两个字为“二小”的所有客户信息; eg:select * from customer where cus_name like '_二小'

5) "_*" 表示匹配任意一个字符结尾的数据,只能以一个字符结尾,如cus_age like "%8" 代表匹配年龄以“8”结尾的所有客户信息; eg:select * from customer where cus_age like '_8'

6) "_*_*"表示匹配中间包含任意一个字符的数据,如cus_id like " 1_0_ " 代表匹配id包含“ 1_0_ ”的所有客户信息; eg:select * from customer where cus_id like '1_0_'

7)eg:select * from customer where cus_age like '^[2]'  --表示查询年龄不以2开头的客户信息

8)eg:select * from customer where cus_age like '[2 | 3]'  --表示查询年龄以2或者3开头的客户信息

在第六章介绍的所有 WHERE 子句在过滤时,使用的都是单一的条件。为了进行更强的过滤控制,MySQL允许给出多个WHERE子句,并通过 AND 或 OR *** 作符的方式组合使用。

AND *** 作符可以使用对多列的条件进行累加过滤。

OR *** 作符可以使用对多列的条件进行累加过滤。

WHERE 子句可包含任意数目的 AND 和 OR *** 作符。但是 AND 的优先级比 OR 高,应使用适当的圆括号分组 *** 作符。

注意: 任何时候都不应该过分依赖默认计算次序,使用圆括号可以增加可读性,消除歧义。

IN *** 作符用来指定条件范围,范围中每个条件都可以进行匹配。 IN 的合法值由逗号分隔,并全部括在圆括号中。

使用 IN 的优点为:

WHERE子句中的NOT *** 作符有且只有一个功能,就是否定它之后的任何条件。

注意: MySQL支持使用NOT对IN、BETWEEN和EXISTS子句取反,这与其他大多数DBMS允许使用NOT对各种条件取反有很大区别。

之前介绍的都是针对已知值的过滤。而对进行未知内容的匹配,可以使用通配符创建比较数据的搜索模式来完成。通配符的匹配,需要通过LIKE *** 作符指示MySQL完成。

% 表示任何字符出现任意次。例如,为了找到所有以 jet 起头的产品,可使用以下 SELECT 语句

注意:

下划线( _ )通配符只匹配单个字符而不是多个字符。

通配符使用技巧:

正则表达式是用来匹配文本的特殊串(字符集合),所有种类的程序设计语言、文本编辑器、 *** 作系统等都支持正则表达式。

MySQL中的正则表达式仅是正则表达式的一个子集。

为搜索两个串之一,使用( | )。

如果想匹配特定的单一字符,可以使用[]将一组指定的内容括起来。

注意:

集合可用来定义要匹配一个或多个字符,此时可以使用 - 来定义一个范围,例如 [0-9] 表示数字0到9, [a-z] 表示字母a到z。

正则表达式语句由具有特定含义的特殊字符构成。例如 | 或 - 等。如果要表示一些特殊的字母,如含 . 的值,则应该使用 \\\ 为前导。 \\\- 表示查找 - , \\\. 表示查找 . 。

注意:

为方便常见字符集的查找,可以使用预定义的字符集。称为字符类。如下图所示:

目前为止使用的所有正则表达式都试图匹配单词出现。但有时需要对匹配的数目进行更强的控制,此时可以使用下列正则表达式重复元字符来完成。

注意: 使用正则表达式时,编写某个特定的表达式几乎总是有多种方法。

目前为止,所有例子都是匹配一个串中任意位置的文本,为了匹配特定位置的文本,需要使用定位符。

注意:


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8655251.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-19
下一篇2023-04-19

发表评论

登录后才能评论

评论列表(0条)

    保存