1 查询时间间隔段内的记录
表结构如下
查询在2025年内
投递简历的岗位
和数量
,并且按数量降序
排序。
select job, sum(num) as cnt from resume_info
where date between "2025-01-01" and "2025-12-31"
group by job
order by cnt desc;
注意的是要使用sum函数
,而不是count函数
。
date
那一行还可以写作where date like "2025%"
。
2 多个条件中使用in
关键词
表结构如下
查询在2025-10-15以后
状态为购买成功
的C++
课程或者Java
课程或者Python
的订单,并且按照order_info的id升序
排序
select * from order_info
where date > "2025-10-15" and status="completed"
and product_name in ("C++", "Java", "Python")
order by id;
多个或运算
可以使用in
关键词。
3 字符串相关操作
查找字符串'10,A,B'
中逗号','
出现的次数cnt
。
select length('10,A,B')-length(replace('10,A,B',',','')) as cnt;
语句中用到了length()
和replace()
函数。
4 按照字段的部分字符排序
表结构如下
查询按照first_name最后两个字母,升序进行排列
select first_name from employees
order by substr(first_name,-2,2);
语句中使用了substr
函数,-2表示起始下标
,2表示截取长度
。
5 concat
连接多个字段
表结构如下
按照dept_no
进行汇总,属于同一个部门的emp_no
按照逗号
进行连接,结果给出dept_no
以及连接出的结果employees
。
select dept_no, group_concat(emp_no) as employees
from dept_emp
group by dept_no;