【力扣白嫖日记】SQL

前言

练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。

今日题目:

1527.患某种疾病的患者
表:Patients

列名 类型
patient_id int
patient_name varchar
conditions varchar

在 SQL 中,patient_id (患者 ID)是该表的主键。‘conditions’ (疾病)包含 0 个或以上的疾病代码,以空格分隔。这个表包含医院中患者的信息。

查询患有 I 类糖尿病的患者 ID (patient_id)、患者姓名(patient_name)以及其患有的所有疾病代码(conditions)。I 类糖尿病的代码总是包含前缀 DIAB1 。

按 任意顺序 返回结果表。


我那不值一提的想法:

首先梳理表内容,题干一共给了一张把病人表,记录了病人的id,病人姓名,以及病人状况。其次分析需求,查询患有I类糖尿病患者的id,姓名,以及患有所有疾病的代码,其中前缀是DIAB1.我的第一想法就是用Like函数去匹配,每办法like用习惯了,然后还会用正则表达式去尝试一下。

selectpatient_id,patient_name,conditions
from Patients
where conditions like "%DIAB1%"

这是我开始的代码,但是对于conditions = "SADIAB100"的患者代码无法识别,这不是我们要的结果,我们希望DIAB1在前面或是在后面,而不是在单词的中间。那么如果DIAB1在后面的话,前面必须得有空格来隔开。所以得有两种情况:
1.DIAB1在所有单词前面:DIAB1%
2.DIAB1不在最前面:% DIAB1% #它的前面就必须要有空格隔开。

selectpatient_id,patient_name,conditions
from Patients
where conditions like "DIAB1%" or conditions like "% DIAB1%"

下面是正则表达式的方法:
依然是两种情况:
1.DIAB1在所有单词前面:^DIAB1.*
2.DIAB1不在最前面:.*\\sDIAB1.*

  • ^:表示以什么作为开头
  • .*:0个或多个任意字符
  • \s:代表空格,前面需要加\进行转义,也就是\s
select patient_id,patient_name,conditions
from Patients
where conditions rlike "^DIAB1.*" or conditions rlike ".*\\sDIAB1.*"

结果:

  • like
    在这里插入图片描述
  • 正则表达式
    在这里插入图片描述

总结:

能运行就行。


相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-02-07 01:18:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-07 01:18:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-07 01:18:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-07 01:18:01       18 阅读

热门阅读

  1. eslint+prettier统一管理前端代码规范-进阶篇

    2024-02-07 01:18:01       29 阅读
  2. PDF下载添加水印和访问密码

    2024-02-07 01:18:01       32 阅读
  3. 建造者模式(Builder)

    2024-02-07 01:18:01       29 阅读
  4. Linux内核与驱动面试经典“小”问题集锦(2)

    2024-02-07 01:18:01       31 阅读
  5. git 的基本概念

    2024-02-07 01:18:01       35 阅读
  6. ECMAScript日常总结--ES2018(ES9)

    2024-02-07 01:18:01       27 阅读
  7. EasyExcel的导入导出使用

    2024-02-07 01:18:01       32 阅读
  8. 鸿蒙 WiFi 扫描流程(2)

    2024-02-07 01:18:01       28 阅读
  9. 【关于实现远程启动电脑】

    2024-02-07 01:18:01       31 阅读
  10. 企业级Spring boot项目 配置清单

    2024-02-07 01:18:01       29 阅读