溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在mysql中對單字段多值進行分割與合并

發(fā)布時間:2021-01-18 14:48:58 來源:億速云 閱讀:182 作者:Leah 欄目:開發(fā)技術

這篇文章將為大家詳細講解有關怎么在mysql中對單字段多值進行分割與合并,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

多個值合并展示

現(xiàn)在我們有如圖一到圖二的需求

怎么在mysql中對單字段多值進行分割與合并

怎么在mysql中對單字段多值進行分割與合并

怎么做?

如下sql:

SELECT id,GROUP_CONCAT(DISTINCT str) as str from test GROUP BY id

相關知識點

GROUP_CONCAT

GROUP_CONCAT([DISTINCT] 要連接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符'])

多個值拆分展示

現(xiàn)在我們的需求和第一個例子相反

由圖三

怎么在mysql中對單字段多值進行分割與合并

到圖四

怎么在mysql中對單字段多值進行分割與合并

這里就稍微復雜了,首先對于str提前做了如圖的處理,即字符+','的一對一對應處理,其次,因為mysql沒有序列功能,所以我們需要提前準備一張序列表,最大id應該大于單個字段內最大項數(shù)

怎么在mysql中對單字段多值進行分割與合并

具體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

相關知識點

SUBSTRING_INDEX(str,delim,count)

SUBSTRING_INDEX(要處理的字符串,分隔符,計數(shù))

如果count是正數(shù),那么就是從左往右數(shù),第N個分隔符的左邊的全部內容

如果是負數(shù),那么就是從右邊開始數(shù),第N個分隔符右邊的所有內容

關于怎么在mysql中對單字段多值進行分割與合并就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI