今天的博客主题
数据库篇 --》Mysql --》Mysql常用SQL汇总
目录
字段合并去重
查询结果追加自定义字符串
查询当天的数据
今天工作当中被同事问道数据库需要两个字段合并去重。简单粗暴点,直接上code 。
表数据
需求
来吧三部曲
第一步:合并aa bb 字段
SELECT id, CONCAT(aa,',',bb) cc from temp_0226;
注意:这一步合并的时候根据字段的分割符号需要根据原始数据分割符号来择选,如果不一样,可以先临时统一符号。
第二步:拆分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
)
第三步:去重合并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
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或者自己写的都记录下来,方便下次使用!!!