mysql單字段多值分割和合并的處理方法
現(xiàn)在我們有如圖一到圖二的需求
怎么做?
如下sql:
SELECT id,GROUP_CONCAT(DISTINCT str) as str from test GROUP BY id
相關(guān)知識(shí)點(diǎn)
GROUP_CONCAT
GROUP_CONCAT([DISTINCT] 要連接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])
多個(gè)值拆分展示現(xiàn)在我們的需求和第一個(gè)例子相反
由圖三
到圖四
這里就稍微復(fù)雜了,首先對(duì)于str提前做了如圖的處理,即字符+’,’的一對(duì)一對(duì)應(yīng)處理,其次,因?yàn)閙ysql沒有序列功能,所以我們需要提前準(zhǔn)備一張序列表,最大id應(yīng)該大于單個(gè)字段內(nèi)最大項(xiàng)數(shù)
具體sql如下:
SELECT t.id,SUBSTRING_INDEX(SUBSTRING_INDEX(str,’,’,s.id),’,’,-1) as str from test2 t join sequence s on s.id<(LENGTH(t.str)/2+1) ORDER BY t.id
相關(guān)知識(shí)點(diǎn)
SUBSTRING_INDEX(str,delim,count)
SUBSTRING_INDEX(要處理的字符串,分隔符,計(jì)數(shù))
如果count是正數(shù),那么就是從左往右數(shù),第N個(gè)分隔符的左邊的全部?jī)?nèi)容
如果是負(fù)數(shù),那么就是從右邊開始數(shù),第N個(gè)分隔符右邊的所有內(nèi)容
總結(jié)到此這篇關(guān)于mysql單字段多值分割和合并處理的文章就介紹到這了,更多相關(guān)mysql單字段多值分割和合并內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. sql server的cube操作符使用詳解2. Mysql入門系列:安排預(yù)防性的維護(hù)MYSQL數(shù)據(jù)庫(kù)服務(wù)器3. 詳解sql server中數(shù)據(jù)庫(kù)快照工作原理4. MySQL多表查詢的具體實(shí)例5. Mybatis 一級(jí)緩存與二級(jí)緩存的實(shí)現(xiàn)6. 解決MySQL讀寫分離導(dǎo)致insert后select不到數(shù)據(jù)的問題7. 為SQLite3提供一個(gè)ANSI到UTF8的互轉(zhuǎn)函數(shù)8. 盤點(diǎn)SqlServer 分頁(yè)方式和拉姆達(dá)表達(dá)式分頁(yè)9. centos編譯安裝mariadb的詳細(xì)過程10. SQL Server數(shù)據(jù)庫(kù)超級(jí)管理員賬號(hào)防護(hù)知識(shí)
