一、知识总结拓展&答案
1、知识点总结与拓展
1)字符串截取
- 从左边截取字符串:left(字段名,n) 从左边第n个开始取到最右边
- 从右边截取字符串:right(字段名,n)从右边地n个开始取到最左边
- 从中间开始截取字符串:substring(字段名,n,m)从左边第n个开始取m个
2)条件
- 或:(A OR B)-- 要用括号
- 与:A AND B
- 非:<>
2、完整代码
SELECT uid,nick_name,achievement FROM user_info WHERE left(nick_name,2)='牛客'AND RIGHT(nick_name,1)='号' #左边开头两个字符是‘牛客',右边结尾1个字符是‘号’。 AND achievement BETWEEN 1200 AND 2500 #成就值在1200~2500之间 AND uid in( SELECT uid FROM exam_record GROUP BY uid HAVING MAX(DATE_FORMAT(start_time,'%Y%m'))='202109' #最后依次活跃的答卷日期是2021年9月的用户 UNION ALL SELECT uid com_time FROM practice_record GROUP BY uid HAVING MAX(DATE_FORMAT(submit_time,'%Y%m'))='202109' #最后依次活跃的答题目日期是2021年9月的用户 );/*最近一次活跃(答题或作答试卷)在2021年9月的用户*/