mysql拆分字符串后行转列_mysql行转列(拆分字符串场景)
生活随笔
收集整理的這篇文章主要介紹了
mysql拆分字符串后行转列_mysql行转列(拆分字符串场景)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一對多沒有建立中間表的時候經常會采用分隔符的形式將“多”存儲在“一”的一個字段里,這樣做的代價是無法向一對多的時候那樣直接關聯查詢,一般采用在程序中分割后分別查詢的辦法。如下圖:
如何才能直接用sql語句查詢出下圖的效果呢?
可以借助一個序號表,該表中除了連續的id沒有其它字段,id的值范圍取決于"一"中存儲的信息拆分后的數量。
實現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
總結
以上是生活随笔為你收集整理的mysql拆分字符串后行转列_mysql行转列(拆分字符串场景)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql传参数 和 区别_mybati
- 下一篇: SQL 2005 Oct CTP 和VS