范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

MySQL字段内容拆分及合并

  #头条创作挑战赛#
  1. 创建测试表及数据  -- 创建一张tb_stu表 CREATE TABLE tb_user( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10) COMMENT "人名", c_no VARCHAR(64) COMMENT "持剑ID,以逗号分隔" ); INSERT INTO tb_user(NAME,c_no) VALUES("蘧伯玉","1,3,5,7"); INSERT INTO tb_user(NAME,c_no) VALUES("高渐离","1,2,4,8,5"); INSERT INTO tb_user(NAME,c_no) VALUES("樗里疾","2,9"); INSERT INTO tb_user(NAME,c_no) VALUES("澹台灭明","1,2"); INSERT INTO tb_user(NAME,c_no) VALUES("钟子期","1,2,6,8,7,3,5"); INSERT INTO tb_user(NAME,c_no) VALUES("柳下惠","2,4,3,5"); INSERT INTO tb_user(NAME,c_no) VALUES("百里奚","1,9"); INSERT INTO tb_user(NAME,c_no) VALUES("阚止","1,6,7"); INSERT INTO tb_user(NAME,c_no) VALUES("霍去病","1,8,5"); INSERT INTO tb_user(NAME,c_no) VALUES("慕容白曜","1,2,3,4,5,7"); INSERT INTO tb_user(NAME,c_no) VALUES("鱼幼薇","7,8,9"); INSERT INTO tb_user(NAME,c_no) VALUES("宋玉","6,5"); -- 创建一张剑名 create table tb_sword( id int primary key AUTO_INCREMENT, c_name varchar(4)) comment "剑名"; insert into tb_sword(c_name)values("轩辕"); insert into tb_sword(c_name)values("湛卢"); insert into tb_sword(c_name)values("赤霄"); insert into tb_sword(c_name)values("太阿"); insert into tb_sword(c_name)values("七星龙渊"); insert into tb_sword(c_name)values("干将"); insert into tb_sword(c_name)values("莫邪"); insert into tb_sword(c_name)values("鱼肠"); insert into tb_sword(c_name)values("纯钧");
  两张表内容如下:
  tb_user
  tb_sword
  2. 数据拆分及合并
  需求: 使用一条SQL获得tb_user表中每个人持有的剑名(剑名用"|"分隔),即得到如下结果
  拆解需求:
  1) 先将tb_user表中的c_no按逗号拆分
  2)将拆分后c_no中的各个id与tb_sword中的id关联,获取剑名
  3) 最后将每一个user对应的剑名合并成一个字段
  分段SQL如下:
  步骤1:
  每一个user的c_no按逗号拆分为对应的c_id,此方法需借助于mysql.help_topic表  SELECT a.id,a.name,a.c_no, SUBSTRING_INDEX( SUBSTRING_INDEX( a.c_no, ",", b.help_topic_id + 1 ), ",",- 1 ) c_id FROM tb_user a JOIN mysql.help_topic b ON b.help_topic_id < ( LENGTH( a.c_no ) - LENGTH( REPLACE ( a.c_no, ",", "" ) ) + 1 ) ORDER BY a.id
  结果如下:
  步骤2:关联获取每个id对应的剑名  SELECT a2.id,a2.name,a2.c_no,a2.c_id,b2.c_name FROM ( SELECT a.id,a.name,a.c_no, SUBSTRING_INDEX( SUBSTRING_INDEX( a.c_no, ",", b.help_topic_id + 1 ), ",",- 1 ) c_id FROM tb_user a JOIN mysql.help_topic b ON b.help_topic_id < ( LENGTH( a.c_no ) - LENGTH( REPLACE ( a.c_no, ",", "" ) ) + 1 ) ORDER BY a.id ) a2, -- a2表即步骤1中拆分的结果 tb_sword b2 WHERE a2.c_id =b2.id -- 关联,相当于inner join(或者join)
  结果如下
  步骤3:
  将每个人的剑名合并为1个字段显示,并用"|" 符合合并  SELECT a2.id,a2.name,a2.c_no, GROUP_CONCAT(b2.c_name SEPARATOR "|" ) sword_name -- SEPARATOR 指定分隔富,不加默认为逗号分隔 FROM (SELECT a.id,a.name,a.c_no, SUBSTRING_INDEX( SUBSTRING_INDEX( a.c_no, ",", b.help_topic_id + 1 ), ",",- 1 ) c_id FROM tb_user a JOIN mysql.help_topic b ON b.help_topic_id < ( LENGTH( a.c_no ) - LENGTH( REPLACE ( a.c_no, ",", "" ) ) + 1 ) ORDER BY a.id) a2,tb_sword b2 WHERE a2.c_id =b2.id GROUP BY a2.id
  结果如下:
  实现需求

打破美元霸权,中东打响石油人民币第一枪,多国为何加速去美元化?阿拉伯国家为何加入人民币朋友圈?在市场万般期盼中,石油人民币结算终于靴子落地。9日下午,首届中国海湾阿拉伯国家合作委员会峰会上,这一重磅消息正式敲定,中方宣布,未来3到5年将继续从一财EV观察减免6000元!特斯拉再推限时福利宝马官宣!计划2030年销量一半是纯电动车广州到2025年力争全市燃料电池汽车产业规模超100亿元12月6日,广州市新能源汽车发展工作小组办公室发布印发广州市燃料电池汽车示范应用工作方案(20222025年)的通知。工作方威高骨科拟收购新生医疗100股延伸公司产业链布局威高骨科(688161)12月13日晚公告,公司拟以现金方式购买威高生物科技威高富森威高医疗影像和威高齐全持有的山东威高新生医疗器械有限公司(下称新生医疗)100股权,交易金额为1iPhone漂流记厂房撤出价值留下看到从南印度漂洋过海而来的iPhone14ProMax,一些人惊呼苹果将产业链向南亚转移已成事实。与中国迄今已长达15年的代工关系,似乎发展到剧变的前夜。近期,苹果代工问题再次引发马云,已经全面退出中国,他的目标现在是世界如今我国的互联网产业红利见底,似乎到达了一个瓶颈阶段。而此前凭借互联网产业发家的企业家们,也是纷纷选择了退居幕后,就连阿里巴巴的创始人马云也不例外。不过值得我们注意的是,马云在退出家长复工孩子不能开学谁带?不同人给出不同看法,这3种最实用随着特殊时期的不断变化,社会逐渐从静默的状态中走了出来,全国各地也逐渐开始了复工复产,很多人都为社会的重回正轨而感到高兴,但是一部分的宝妈宝爸们却有点犯难了,自己可以正常上班了,但下周行情会大跌吗?本周沪指总体运行平稳维持横向震荡,周一跳空高开形成缺口,这个缺口叫做普通型缺口,普通型缺口最大的特点就是在短期内回补缺口,这个缺口为行情调整提供了很好的理由。目前沪指面临三大压力区今年新起爆火网络的元宇宙概念究竟是什么?什么是元宇宙Metaverse(元宇宙)是一个由虚拟现实和混合现实技术组成的概念,它指的是一个虚拟世界,可以由用户通过互联网访问和交互。它的概念源于科幻作品,但它也被用来描述现实世汶上县宝相寺景区成为济宁市首个实现电子身份证亮证进景区的4A级景区为全面落实山东省文化和旅游厅山东省大数据局关于开展电子身份证亮码进景区工作的通知要求,汶上县积极主动作为,县文化和旅游局县大数据中心联合宝相寺景区共同推进电子身份证进景区工作。积极当甘棠道黄酒遇上元宇宙,会蹚出一条什么样新赛道?2022年6月20日,智酷No。150(总262期)暨元宇宙与未来媒介新书分享会上,记者问DCCI互联网研究院院长刘兴亮,元宇宙到底是不是新瓶装旧酒?因为他感觉大家把云计算区块链物顺企赴欧找订单广州日报讯(全媒体记者黄子宁通讯员李艳珊)拜访了三年没见的客户,很开心终于能够与客户面对面交流。日前,佛山重启海外经贸交流活动,组织经贸代表团远赴波兰德国和匈牙利开展经贸交流,深度
食品饮料行业研究复盘四轮调整,下半年有望开启新一轮牛市(报告出品方作者广发证券,王永锋袁少州)结论22年下半年食品饮料行业有望开启新一轮牛市04年至今食品饮料行业共经历四轮牛市,每轮牛市通常持续34年,之后进入36个季度的调整期。复盘发不发,就看八月八,明日八月初八,顺应老传统,别忘吃3样老话说发不发,就看八月八,明日农历八月八,到底有啥说法?古时候人们认为,每一个重日都是天人相通的日子,在这些日子里,人们大多会进行祭祀和祈福活动,希望能更顺利地把自己的心意传达给天今年八月十二交白露,老人说今年是夜子单白露,有啥说法?白露节气即将到来,今年农历的八月十二,就是白露节气交节的时间。此时斗柄指癸,太阳黄经到达165度,是仲秋的开始。今年的白露节气有什么特点?老人说今年是夜子单白露,有什么说法?白露节到底还能热多久?农村谚语暑不过午,热到白露,老话有道理吗导读时光荏苒,季节变迁,转眼之间,我们已走进处暑,即将迎接一年一度的白露节。2022年极不平凡,炎热天气刷新了历史记录,不仅仅是温度之高令世人哗然,炎热持续的时间之长,也叫人刮目相明日起开售8月27日,2022年中秋假期首日的火车票将正式开售。8月27日可买9月10日车票8月28日可买9月11日车票8月29日可买9月12日车票。车票预售列车开行等服务资讯,请以铁路12iPhone14Pro的药丸形打孔上的隐私指示器将比显示屏的其他部分更亮产品发布前夕的传言表明,iPhone14Pro上预计会出现的两个打孔将显示为一个长长的药丸状打孔,苹果还将其中的空间用于绿色和橙色的摄像头和麦克风隐私指示灯。隐私指示器的信息来自M极目时评孟晚舟回母校演讲刷屏,像华为这样去逆战寒冬极目新闻评论员屈旌读书万卷,能帮助我们充实理论知识咖啡千杯,能帮助我们吸收思想能量激发创新火花。9月2日,华为副董事长轮值董事长首席财务官孟晚舟回到自己的母校贵州都匀市都匀一中,与广东南雄市一男子熏制硫磺辣椒干获刑来源工人日报客户端原标题广东南雄市一男子熏制硫磺辣椒干获刑工人日报中工网记者叶小钟通讯员钟州琼杨璐实习生谢迟食品安全关乎人们的身体健康与生命安全。日前,广东省南雄市人民法院依法审结墨西哥小伙走进江西革命老区,感受中墨跨越400年的辣椒缘(文高皓亮程迪霍丹彤陈瑶吴昊)展开世界地图,只见北回归线划出优美的弧线,将远隔重洋的中国和墨西哥相连。在墨西哥小伙赫拉尔多吉列尔莫眼里,这一弧线像极了他的家乡味辣椒。四百多年前,原全球连线江西辣椒园里的中墨辣椒缘展开世界地图,北回归线滑过优美的弧线,将远隔重洋的中国和墨西哥相连。在墨西哥小伙赫拉尔多吉列尔莫眼里,这一弧线的形状像极了他的家乡味辣椒。长征中的辣椒故事2021年秋,吉列尔莫离开重庆綦江虹桥1999年垮塌事故纪实照片照片版权归新华社及相关记者所有。著作权归今日头条作者集影斋所有。媒体类平台转载需本人同意方可!编辑不易,若君喜欢请打个赏!彩虹桥原貌杨磊摄彩虹桥垮塌现场抢救人员在现场打捞遇难者遗体