0%

MYSQL-LeetcodePractice-DAY03-字符串处理/正则.md

继续

1667.修复表中的名字

编写一个 SQL 查询来修复名字,使得只有第一个字符是大写的,其余都是小写的。

返回按 user_id 排序的结果表。

考点

1.concat()函数

🔨将多个字符串拼接在一起。

2 LEFT(str, length) 函数
🔨从左开始截取字符串,length 是截取的长度。

3 UPPER(str) 与 LOWER(str)

🔨UPPER(str) 将字符串中所有字符转为大写

🔨LOWER(str) 将字符串中所有字符转为小写

4 SUBSTRING(str, begin, end)

🔨截取字符串,end 不写默认为空。

SUBSTRING(name, 3) :截取从第3个字符开始所有的字符。

1
2
3
SELECT SUBSTRING('成都融资事业部',3)

结果:融资事业部

SUBSTRING(name,5,3):从第5个字符开始 只截取之后的3个字符

1
2
3
SELECT SUBSTRING('成都融资事业部',5,3)

结果:事业部

SUBSTRING(name,-4):从倒数第4个开始取 取到最后面

1
2
3
SELECT SUBSTRING('成都融资事业部',-4)

结果:资事业部

SUBSTRING(name,-4,2):从倒数第4个开始取 取这个后面2个字符(包括这倒数第4个在内

1
2
3
SELECT SUBSTRING('成都融资事业部',-4,2)

结果:资事

代码

1
2
3
select user_id , contact(upper(left(name,1)),lower(substring(name,2))) as name
from Users
order by user_id;

1484.按日期分组销售产品

编写一个 SQL 查询来查找每个日期、销售的不同产品的数量及其名称。

每个日期的销售产品名称应按词典序排列。

返回按 sell_date 排序的结果表。

考点

1.count()函数

🔨返回匹配指定条件的行数

count(*)

🔨计算所有行行数

count(exp)

🔨返回不包含NULL值的行数

count(distinct expression)

🔨返回不包含NULL值的唯一行数

2.GROUP_CONCAT()函数

👉将组中的字符串连接成为具有各种选项的单个字符串。

语法

1
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])

3.词典序

表示英文单词在字典中的先后顺序,在计算机领域中扩展成两个任意字符串的大小关系。

4.group by()

用于结合合计函数,根据一个或多个列对结果集进行分组。

语法

1
2
3
4
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

代码

1
2
3
4
5
6
7
8
9
# Write your MySQL query statement below
select
sell_date,
count(distinct product) num_sold,
GROUP_CONCAT(distinct product) products
from
activities
group by sell_date
order by sell_date;

1527.患某种疾病的患者

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

like语句

代码

1
2
3
4
5
6
# Write your MySQL query statement below
select
patient_id , patient_name , conditions
from Patients
where conditions like '%DIAB1%'
or conditions like ' DIAB1%';

发现WA了。13/14(不是11/14不是很认可😇😇)

后来发现是后2行有小空格没处理好

1
2
3
4
5
6
# Write your MySQL query statement below
select
patient_id , patient_name , conditions
from Patients
where conditions like '% DIAB1%'
or conditions like 'DIAB1%';

%xxx%匹配的是xxx,哪怕空格在里面也可以匹配。

只有一个%不允许有空格。(暂时这样理解)

-------------本文结束感谢您的阅读-------------
请作者喝一杯蜜雪冰城吧!