四时宝库

程序员的知识宝库

MySQL常见基础用法补充(mysql基础语法大全)

上节课给大家介绍了MySQL中常见的基础用法,这节课我们准备对上节课的内容做个补充,本期内容我们想跟大家聊聊MySQL模糊匹配关键字LIKE以及CASE WHEN的基本用法。



1、模糊匹配LIKE

在 MySQL 中,LIKE 关键字主要用于搜索匹配字段中的指定内容。其语法格式如下:

[NOT] LIKE  '字符串'


其中:

  • NOT :可选参数,表示字段中的内容与指定的字符串不匹配时满足条件。
  • 字符串:指定用来匹配的字符串。“字符串”可以是一个完整的字符串,也可以包含通配符。

注:通配符是一种特殊语句,主要用来模糊查询。当不知道真正字符或者懒得输入完整名称时,可以使用通配符来代替一个或多个真正的字符串。


LIKE 关键字支持百分号“%”和下划线“_”通配符。两者的区别是,“%”能代表任何长度的字符串,字符串的长度可以为 0。“_”只能代表单个字符,字符的长度不能为 0。“%”是 MySQL 中最常用的通配符,下面我们将专门针对“%”通配符进行具体讲解。


1)在titanic乘客信息表中,查找所有以“Green”开头的乘客姓名。

select name from titanic where name like "Green%";


其输出结果如下


可以看到,结果把所有以“Green”开头的乘客姓名都找到了,其中包括Greenfield、Green、Greenberg三种。


2)在titanic乘客信息表中,查找所有姓名中包含Miss的乘客姓名。

select name from titanic
where name like "%Miss%";


其输出结果如下


可以看到,结果把所有乘客姓名中包含“Miss的乘客都找出来了,其中包含姓名以“Miss”开头、以“Miss”结尾或中间包含“Miss”几种情况。


3)在titanic表中,查找所有以“Mr”结尾的乘客姓名。

select name from titanic
where name like "%Mr";


其输出结果如下


可以看到,结果中确实把所有姓名以“Mr”结尾的乘客都找出来了。



2、CASE WHEN

在MySQL中,一般来说CASE WHEN 用法算是进阶用法,但在日常工作中,它也是非常常用的,其语法格式如下:

CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
ELSE result
END;


CASE WHEN 经常应用在分组查询场景中。例如,在titanic乘客信息表中,查询乘客id、姓名,当乘客姓名中包含“Mr”时,以“先生”表示尊称;当乘客姓名中包含“Miss”时,以“小姐”表示尊称。

select PassengerId,name
,case when name like "%Mr%" then "先生"
when name like "%Miss%" then "小姐" end resp_name
from titanic ;


其输出结果如下


同时,我们想分组统计尊称中各个取值的人数情况。

select resp_name,count(PassengerId)
from
    ( select PassengerId,NAME,case when name like "%Mr%" then "先生" 
when name like "%Miss%" then "小姐" end resp_name
from titanic ) a 
GROUP by resp_name;


其结果如下


OK,以上就是关于模糊匹配关键字LIKE以及CASE WHEN的基本用法。本期内容到此,喜欢的朋友记得点赞,在看和转发,感谢支持!




发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接