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)


相关推荐

  • CRC32 Hash PK Murmur Hash「建议收藏」

    CRC32 Hash PK Murmur Hash「建议收藏」硬件指令实现的CRC32运算在多款主流CPU上性能超越Murmurhash,碰撞性能基本一致,多数场景可以使用CRC32硬件指令优化HASH算法提升性能

    2022年10月10日
  • 在非Activity中使用startActivityForResult

    在非Activity中使用startActivityForResult在开发过程中有时会有需要在非activity中,跳转到另一个activity中,再携带某些值回到先前的页面,我们在很多地方可以拿到context,但这个时候想使用startActivityForResult时却发现无法调用,因为这个方法是Activity下的,而非Context下,这个时候只需要强转一下即可,将获取到的context转成activity就可以使用这个方法了,在我的…

  • pycharm2021年激活码刚出【2021最新】

    (pycharm2021年激活码刚出)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZP…

  • 何时使用或何时不使用malloc函数

    何时使用或何时不使用malloc函数在初学数据结构时,我们往往不太清楚在定义一个结构体指针时要不要使用malloc函数。例如以下的代码:LINKLIST*initlinklist(){LINKLIST*H=NULL;LINKLIST*S;intx;printf(“请输入链表元素或以-1结束输入”)while(x!=-1){s=(LINKLIST*

  • qpython3安装pygame_详解Python pygame安装过程笔记

    qpython3安装pygame_详解Python pygame安装过程笔记今天看到一个教程,是关于Python安装pygame模块的。觉得很好,拿来分享一下。安装Python额,这个小题貌似在这里很是多余啊。但是为了照顾到刚刚学习Python的童鞋,我还是多啰嗦两句吧。具体如下:我们要到Python官网。去下载我们需要的版本。我这里下载的是windows64位的Python2.7msi。安装的过程如果不懂,选择为默认即可。安装easy_install至于这是个什么东…

  • hdu 1215 七夕节

    hdu 1215 七夕节

发表回复

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

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