mysql拆分字符串后行转列_mysql行转列(拆分字符串场景)
生活随笔
收集整理的這篇文章主要介紹了
mysql拆分字符串后行转列_mysql行转列(拆分字符串场景)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一對(duì)多沒(méi)有建立中間表的時(shí)候經(jīng)常會(huì)采用分隔符的形式將“多”存儲(chǔ)在“一”的一個(gè)字段里,這樣做的代價(jià)是無(wú)法向一對(duì)多的時(shí)候那樣直接關(guān)聯(lián)查詢,一般采用在程序中分割后分別查詢的辦法。如下圖:
如何才能直接用sql語(yǔ)句查詢出下圖的效果呢?
可以借助一個(gè)序號(hào)表,該表中除了連續(xù)的id沒(méi)有其它字段,id的值范圍取決于"一"中存儲(chǔ)的信息拆分后的數(shù)量。
實(shí)現(xiàn)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
總結(jié)
以上是生活随笔為你收集整理的mysql拆分字符串后行转列_mysql行转列(拆分字符串场景)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql传参数 和 区别_mybati
- 下一篇: java反射实例_关于java反射的一个