MySQL数据拆分

前言

有时候迫不得已把数据存在了一起,而没有使用关联多个表格的方式,但是如果想要拆开多行进行计算时就有点头疼了,然鹅还是有办法处理的,具体如下所示。

数据表原格式

digits score
A+B+C 1
C+D 2
A+C 1

数据表改进格式

digit sum_score
A 2
B 1
C 4
D 2

MySQL语句

SELECT
	c.digit,
	SUM(score) AS sum_score
FROM
	(
		SELECT
			a.score,
			SUBSTRING_INDEX(
				SUBSTRING_INDEX(
					a.digits,
					"+",
					b.help_topic_id + 1
				),
				"+" ,- 1
			) AS digit
		FROM
			table_name a
		JOIN mysql.help_topic b ON b.help_topic_id < (
			length(a.digits) - length(REPLACE(a.digits, '+', '')) + 1
		)
	) AS c
GROUP BY
	c.digit
发布了53 篇原创文章 · 获赞 30 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/Totoro1745/article/details/98245294