前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql用法进阶

mysql用法进阶

作者头像
用户1396155
发布2018-08-02 15:54:03
8560
发布2018-08-02 15:54:03
举报
文章被收录于专栏:IT探索IT探索

1.按中文拼音排序:

表中中文为utf8编码,先转成gbk。

select name from table_name order by convert(name using gbk) asc

2.多行转多列:

参考文献:http://www.cnblogs.com/small8/p/6211009.html

例如要行转列的字段为subject(学科),要赋值的字段score(成绩),为可以通过如下方式转换:

代码语言:javascript
复制
select  name,
MAX(CASE subject when '语文' THEN score ELSE 0 END) '语文',
           MAX(CASE subject when '数学' THEN score ELSE 0 END) '数学',
           MAX(CASE subject when '英语' THEN score ELSE 0 END) '英语'
from exam_result
group by name

3.分组内编序号

题目:假设表table_1的字段为group_name,log_time,field_name1,field_name2。需求是想取每个group_name中log_time最小的记录。

实现方法:用变量记录上次的分组的值,如果相同,则计数+1,否则重新计数

SQL如下:

代码语言:javascript
复制
select group_name,log_time,field_name1
from
(
select group_name,log_time,field_name1, 
(@index:=CASE WHEN @last_group_name=group_name THEN @index+1 ELSE 1 END) record_index,(@last_group_name=group_name) last_group_name 
from 
(
select * 
from table_1 
order by group_name,log_time
)A,
(
select @index:=1,@last_group_name=''
)B
)C where record_index=1
4.生成序列
参考文献:http://yuanding.us/miscellany/4806/
例如生成上周的日期序列:
select sequence_date
from 
(
select subdate(curdate(),t.i) sequence_date
from 
(
select 1 i union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9 union select 10 union select 11 union select 12 union select 13 union select 14
)t
)date_list
where yearweek(sequence_date,1)=yearweek(DATE_SUB(now(),INTERVAL 7 DAY),1) 
order by sequence_date

注意:判断上周日期的地方按下面写才不会有跨年的BUG:

代码语言:javascript
复制
yearweek(sequence_date,1)=yearweek(DATE_SUB(now(),INTERVAL 7 DAY),1) 

5.按分隔符取子串

例如,原始字符串格式如下:

1.2.3.456

目标是取出1.2.3

实现方式: substring_index('2.3.0.456','.',3)

6.多个select结果拼接:

代码语言:javascript
复制
select  * from a
union select * from b
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年12月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档