mysql行转列(拆分字符串场景)

mysql行转列(拆分字符串场景)一对多没有建立中间表的时候经常会采用分隔符的形式将“多”存储在“一”的一个字段里,这样做的代价是无法向一对多的时候那样直接关联查询,一般采用在程序中分割后分别查询的办法

大家好,又见面了,我是你们的朋友全栈君。

一对多没有建立中间表的时候经常会采用分隔符的形式将“多”存储在“一”的一个字段里,这样做的代价是无法像一对多的时候那样直接关联查询,一般采用在程序中分割后分别查询的办法。如下图:

mysql行转列(拆分字符串场景)

如何才能直接用sql语句查询出下图的效果呢?

mysql行转列(拆分字符串场景)

可以借助一个序号表,该表中除了连续的id没有其它字段,id的值范围取决于”一”中存储的信息拆分后的数量。

mysql行转列(拆分字符串场景)

实现sql:

SELECT
	NAME,
	REPLACE(
		SUBSTRING_INDEX(mobile, ',', a.id),
		CONCAT(
			SUBSTRING_INDEX(mobile, ',', a.id - 1),
			','
		),
		''
	)AS mobile
FROM
	squence a
CROSS JOIN(
	SELECT
		NAME,
		CONCAT(mobile, ',')AS mobile,
		LENGTH(mobile)- LENGTH(REPLACE(mobile, ',', ''))+ 1 AS size
	FROM
		`user`
)b ON a.id <= b.size

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/139984.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)
blank

相关推荐

  • 银行风控模型

    银行风控模型风控催生原因对于银行来说,现今互联网贷款和信用卡办理面临的主要难题是数据和风控。站在银行或金融机构角度,自然而然是想获得更多的信息和数据,但是在收集数据这方面又是比较无力的。加上当下的发展趋势,消费贷以及贷款审批速度都要求快。如何在快的的过程中对客户进行一个全面的审查,得出一个合理的结果呢?如果没有详细的数据对客户进行评估,这势必会提高放贷的风险。风控概述所谓风控,是指多银行贷款资金的…

  • 录屏软件Kap使用经验分享「建议收藏」

    录屏软件Kap使用经验分享「建议收藏」Kap是一款非常实用又简单的录屏软件。https://getkap.co/点击右上角的下拉菜单GETKAP,选择对应你的MACOS的版本。这个到底要选择哪个呢?点击你MACOS系统左上角的白苹果图标,点击关于本机查看里面处理器这行:如果是Intel处理器就选用DownloadforApple(Intel)如果是其他处理器,就是选用DownloadforApple(M1)点击Chrome浏览器里的下载内容找到你刚才下载的软件记录点击在Finde

  • 一个完整的ajax简单案例_Java实例

    一个完整的ajax简单案例_Java实例写在前面的话:用了很久的Asp.NetAjax,也看了段时间的jquery中ajax的应用,但到头来,居然想不起xmlHttpRequest的该如何使用了.以前记的也不怎么清楚,这次

  • 现在哪款诺基亚能玩Java游戏_回忆S60(塞班)年代的JAVA游戏:有没有哪一款是你在课堂偷偷玩的?…

    现在哪款诺基亚能玩Java游戏_回忆S60(塞班)年代的JAVA游戏:有没有哪一款是你在课堂偷偷玩的?…Bounce我们把这个游戏叫为蹦球,也是诺基亚手机内置的一款游戏。需要操控一只红色的小皮球,滚动、蹦跳来一路闯关,碰触黄色的圈得分,关卡设计在今天来说都算是十分灵活的,可以来回进行冒险,不像常见的横版卷轴过关游戏,经过的关卡就不能回去了。玩这款游戏很是需要耐心,有些关卡需要特别注意机关、暗道,更有些关卡连弹跳的力度和位置都需要尝试很多次去掌握,依稀还记得按键2,5跳跃,按*(星键)可以改变蹦球形象…

  • java的遍历数组效率测试源码[通俗易懂]

    java的遍历数组效率测试源码[通俗易懂]packagejavatest;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;publicclassjavatest{ publicstaticvoidmain(String[]args){ Listlist=newArrayList(); l

  • git无法删除本地分支_git如何删除远程分支

    git无法删除本地分支_git如何删除远程分支git删除本地分支出现错误转载:https://blog.csdn.net/benben_2015/article/details/79782202删除本地分支经常出现的情况有以下几种:error:Thebranch‘testing’isnotfullymerged.使用gitbranch-dtestin…

    2022年10月10日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号