MYSQL练题笔记-高级字符串函数 / 正则表达式 / 子句-简单3题

这个系列先写了三题,比较简单写在一起。

1.修复表中的名字相关的表和题目如下

看题目就知道是有关字符串函数的,于是在书里查询相关的函数,如下图,但是没有完全对口的函数,所以我还是去百度了。

然后发现结合上面的4个函数和一个length()即可,就是Concat(),upper(),left(),lower(),right(),length(),构成语句如下。

Concat(upper(left(name,1)),lower(right(name,length(name)-1)))

注意的是括号要先输入好,不然容易出错,我的题解如下:

select user_id,Concat(upper(left(name,1)),lower(right(name,length(name)-1))) as name from Users order by user_id;

看其他的题解不同的是第二个部分,小写部分使用的函数不同,通过lower(substring(name,2))表示从第二个字符开始截取字符串。

2.患某种疾病的患者相关的表和题目如下

很明显是使用正则表达式,关键字为regexp,包含DIAB1的conditions,题目里说这是开头,但是conditions有多个代码,I 类糖尿病的代码又不一定在开头。我测试的代码如下

select patient_id,patient_name,conditions from patients where conditions regexp 'DIAB1';

好吧运行时对的但是提交的时候错了,因为可能DIAB1这个代码有可能是其他的病的代码的中间或者结尾,还是看题解吧,题解如下:

select * from patients where conditions like 'DIAB1%' or conditions like '% DIAB1%';

这里不能使用正则表达式第二个like我刚开始时有疑问的,因为提交的时候的测试示例有一个condition为SADIAB1100的,但是如果有一个ADIAB1100的测试示例的话,这个语句是不满足的,

因为like模糊查询中的%代表的是某个字符的占位,这个语句只是现在能通过这个测试示例而已。

然后发现第二个like的第一个%后面有空格,没看清楚,仔细看下图。

3.删除重复的电子邮箱相关的表和题目如下

email这个字段相同的话,只留id最小的记录,其余比他大的,不管是两条还是三条都要删除。

我先想到的是连接,但是删除的话不确定怎么连接,还是老实看题解。

delete a from person a,person b where a.id>b.id and a.email=b.email;

即使知道这样的连接方式,但是我没想到a.id>b.id,就想着min(),大意了。

4.总结

这几题都挺简单的,但是都得知道相关的知识才能会,比如字符串函数concat()等,like模糊查询,这部分就不是mysql的基础知识了,算给用户拓展的工具的使用,还有之前的题目没接触的delete的语法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/283593.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Video anomaly detection with spatio-temporal dissociation 论文阅读

Video anomaly detection with spatio-temporal dissociation 摘要1.介绍2.相关工作3. Methods3.1. Overview3.2. Spatial autoencoder3.3. Motion autoencoder3.4. Variance attention module3.5. Clustering3.6. The training objective function 4. Experiments5. Conclusio…

使用C/C++实现DNS协议栈

使用C/C实现DNS协议栈 DNS,全称域名系统(Domain Name System),是用于将域名转换为IP地址的分布式数据库系统。实现一个完整的DNS协议栈是一个相对复杂的任务,但本文将为您提供一个简化的概述和实际的案例,以帮助您入门。 1. 基…

ASF-YOLO:一种基于注意尺度序列融合的细胞实例分割YOLO模型

摘要 我们提出了一种基于注意力尺度序列融合的You Only Look Once(YOLO)框架(ASF-YOLO),该框架结合了空间和尺度特征,用于准确快速的细胞实例分割。在YOLO分割框架的基础上,我们采用尺度序列特…

MindOpt工具是如何做到配套使用的?请看此篇

Mindopt 介绍 MindOpt是阿里巴巴达摩院决策职能实验室研发的专注于优化领域,提供智能优化解决方案的品牌。主要的目标是帮助客户通过先进的优化算法和技术,实现业务流程的最佳化,提升效率,降低成本,并最大化业务价值。…

01|LangChain系统安装和快速入门

01|LangChain系统安装和快速入门 什么是大语言模型 大语言模型是一种人工智能模型,通常使用深度学习技术,比如神经网络,来理解和生成人类语言。这些模型的“大”在于它们的参数数量非常多,可以达到数十亿甚至更多&am…

YOLOv8改进 | 2023主干篇 | RepViT从视觉变换器(ViT)的视角重新审视CNN

一、本文介绍 本文给大家来的改进机制是RepViT,用其替换我们整个主干网络,其是今年最新推出的主干网络,其主要思想是将轻量级视觉变换器(ViT)的设计原则应用于传统的轻量级卷积神经网络(CNN)。我将其替换整个YOLOv8的…

自由编程学习资源:free-programming-books

最近,我发现了一个在GitHub上备受欢迎的项目,它为程序员和编程爱好者提供了丰富、免费且高质量的学习资料,这就是"free-programming-books"。目前,这个项目在GitHub上已经有305k的star,显示出它在开发者社区…

C++ Qt 开发:ListWidget列表框组件

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍ListWidget列表框组件的常用方法及灵活运用。…

MetaAI语音翻译大模型Seamless登场,主打AI无缝同声传译

论文题目: Seamless: Multilingual Expressive and Streaming Speech Translation 论文链接: https://ai.meta.com/research/publications/seamless-multilingual-expressive-and-streaming-speech-translation/ 代码链接: GitHub - facebook…

SQL进阶理论篇(十):数据库中的锁

文章目录 简介按照锁的粒度进行划分从数据库管理的角度进行划分从程序员的角度进行划分为什么共享锁会发生死锁?参考文献 简介 索引和锁,是数据库中的两个核心知识点。 索引的相关知识点,在之前的几章里我们已经介绍的差不多了。接下来我们…

FPGA简易加减法计算器设计

题目要求: (1)设计10以内的加减法计算器。 (2)1个按键用于指定加法或减法,一个用于指定加数或被加数,还有两个分别控制加数或被加数的增加或减少。 (3)设置的结果和计算的…

开发了一年的IDEA插件,接口调试的强大工具,敢说吊打所有

前言 经历了整整一年的开发,现在这款插件终于可以测试了,可以到网站http://plugin.houxinlin.com 进行下载(Idea版本仅支持2021.1及以上)。 那么,这个插件到底解决了什么问题?以至于我花了一整年时间。 每个后端程序员都需要借助…