Leecode-SQL 1527. 模糊查询匹配(模糊查询用法)

在这里插入图片描述
实际上这个题考的是模糊查询或者是正则匹配
模糊查询版本

select * from Patients where conditions like'% DIAB1%' or conditions like'DIAB1%'

复习一下MySQL模糊查询用法

  1. 基本字符匹配:
    select name from user where name REGEXP ‘1000’;
    检索name中包含文本1000的所有行。

select name from user where name REGEXP ‘.000’;
.在正则表达式中表示匹配任意一个字符。

  1. 进行OR匹配:
    select name from user where name REGEXP ‘1000|2000’;
    检索name中包含文本1000或2000的所有行。

  2. 匹配几个字符之一:
    select name from user where name REGEXP ‘[123] Ton’;
    [123]定义一组字符,它的意思是匹配1或2或3。

select name from user where name REGEXP ‘[1-3] Ton’;
-用来定义一个范围。

  1. 匹配特殊字符:
    匹配特殊字符,必须用\为前导,-表示查找-,.表示查找.

  2. 匹配多个实例:
    *: 0个或多个匹配;
    +:1个或多个匹配(等于{1,});
    ?:0个或1个匹配(等于{0,1});
    {n}:指定数目的匹配;
    {n,}:不少于指定数目的匹配;
    {n,m}:匹配数目的范围(m不超过255)。

  3. 定位符:
    ^:文本的开始;
    $:文本的结尾;
    [[:<:]]:词的开始;
    [[:>:]]:词的结尾;
    在集合中:用来否定该集合,例如[0-9],表示不匹配数字

正则解法,对两种情况进行or,匹配任意一种,第一种是DIAB1结尾,第二种是以空格开头DIAB1

select 
patient_id,
patient_name,
conditions
from Patients
where conditions regexp '^DIAB1| DIAB1'
order by patient_id asc
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值