mysql去重汇总_Mysql常用SQL汇总

今天的博客主题

数据库篇 --》Mysql --》Mysql常用SQL汇总

目录

字段合并去重

查询结果追加自定义字符串

查询当天的数据

字段合并去重

今天工作当中被同事问道数据库需要两个字段合并去重。简单粗暴点,直接上code 。

表数据

3d4a593b25d1297828360e857ebd7144.png

需求

5273231f6a5d5e50b468d401313f8f25.png

来吧三部曲

第一步:合并aa bb 字段

SELECT id, CONCAT(aa,',',bb) cc from temp_0226;

84cf8cd7f3d7ffd59911efd1e4617a0a.png

注意:这一步合并的时候根据字段的分割符号需要根据原始数据分割符号来择选,如果不一样,可以先临时统一符号。

第二步:拆分cc字段

SELECT

a.id,

substring_index(

substring_index(

a.cc,

',',

b.help_topic_id + 1

), ',', - 1

) cc

FROM

(

SELECT id, CONCAT(aa,',',bb) cc from temp_0226

) a

JOIN mysql.help_topic b ON b.help_topic_id <

(

length(a.cc) - length(REPLACE(a.cc, ',', '')) + 1

)

ab2364551f56d88e4422427de8832d89.png

第三步:去重合并cc字段

SELECT id, group_concat(distinct aa.cc) FROM (

SELECT

a.id,

substring_index(

substring_index(

a.cc,

',',

b.help_topic_id + 1

), ',', - 1

) cc

FROM

(

SELECT id, CONCAT(aa,',',bb) cc from temp_0226

) a

JOIN mysql.help_topic b ON b.help_topic_id <

(

length(a.cc) - length(REPLACE(a.cc, ',', '')) + 1

)

) aa group by id

e314a3e9da7bd3825573ef2471d5a0df.png

OK。大功告成。

如果想要其他字段在第二步a.id后面追加即可!

此法可能会比较笨,自己琢磨写的。如有SQL大神望不吝赐教。。。

查询结果追加自定义字符串

SELECT CONCAT(NAME, '最棒的') FROM USER ;

查询当天的数据

SELECT * FROM SYS_USER WHERE TO_DAYS(LAST_LOGIN_NAME) = TO_DAYS(NOW());

给大家分享个SQL技巧

不管多长的SQL,都是从最中心开始往外写的,根据需求来写,第一步想要什么第二步想要什么这样一直往外写。

一样当你去查看别的写的SQL,一看哇这么长,当时就想放弃了,越这样越学不到知识。

把每次搜索引擎到的好文章好code或者自己写的都记录下来,方便下次使用!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值