常用字符串函数
知识点:对字符串的操作
常用函数 | 对应描述 |
---|---|
RIGHT(s,n) | 返回字符串 s 的后 n 个字符 |
LEFT(s,n) | 返回字符串 s 的前 n 个字符 |
MID(s,n,len) | 从字符串 s 的 n 位置截取长度为 len 的子字符串,同 SUBSTRING(s,n,len) |
LCASE(s) | 将字符串 s 的所有字母变成小写字母 |
字符串函数转载自:https://www.runoob.com/mysql/mysql-functions.html
-- 查询在2025年投递简历的每个岗位,每个月内收到简历的数量和,对应的2026年的同月同岗位收到简历的数量,最后的结果先按first_year_mon月份降序,再按job降序排序显示 SELECT h1.job,first_year_mon,first_year_cnt,second_year_mon,second_year_cnt FROM -- 2025年的 (SELECT job,DATE_FORMAT(DATE,'%Y-%m') AS first_year_mon,SUM(num) AS first_year_cnt FROM resume_info WHERE DATE LIKE '2025%' -- 符合最左前缀匹配原则,也走索引 GROUP BY job,first_year_mon) AS h1 -- inner join 假装优化下,inner可以省略 INNER JOIN -- 2026年的 (SELECT job,DATE_FORMAT(DATE,'%Y-%m') AS second_year_mon,SUM(num) AS second_year_cnt FROM resume_info WHERE DATE LIKE '2026%' -- 符合最左前缀匹配原则,也走索引 GROUP BY job,second_year_mon) AS h2 -- 表连接条件:两表job相同且月份相同, -- 因date日期类型经过 DATE_FORMAT()后变成 字符串,所以使用right()函数取后两位即为月数 ON h1.job=h2.job AND right(first_year_mon,2)=right(second_year_mon,2) -- 排序 ORDER BY first_year_mon DESC,h1.job DESC;