本文主要給大家簡(jiǎn)單講講MySQL表數(shù)據(jù)行列如何實(shí)現(xiàn)轉(zhuǎn)換,相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補(bǔ)充一下,這里就不涉獵了,我們就直奔主題吧,希望mysql表數(shù)據(jù)行列如何實(shí)現(xiàn)轉(zhuǎn)換這篇文章可以給大家?guī)硪恍?shí)際幫助。
1.行轉(zhuǎn)列
CREATE TABLE `option` ( `category_id` int(10) unsigned NOT NULL COMMENT '分類id', `name` varchar(20) NOT NULL COMMENT '名稱', KEY `category_id` (`category_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `option` (`category_id`, `name`) VALUES
(1, '大'),
(1, '中'),
(1, '小'),
(2, '奔馳'),
(2, '寶馬'),
(3, '2015'),
(3, '2016'),
(3, '2017'),
(3, '2018'),
(4, '1m'),
(4, '2m');mysql> select * from `option`;
+-------------+--------+| category_id | name |
+-------------+--------+| 1 | 大 |
| 1 | 中 |
| 1 | 小 |
| 2 | 奔馳 |
| 2 | 寶馬 |
| 3 | 2015 |
| 3 | 2016 |
| 3 | 2017 |
| 3 | 2018 |
| 4 | 1m || 4 | 2m |
+-------------+--------+
+-------------+---------------------+| category_id | name |
+-------------+---------------------+| 1 | 大,中,小 |
| 2 | 奔馳,寶馬 |
| 3 | 2015,2016,2017,2018 || 4 | 1m,2m |
+-------------+---------------------+
執(zhí)行結(jié)果:
mysql> select category_id,group_concat(name) as name from `option` group by category_id order by category_id;
+-------------+---------------------+| category_id | name |
+-------------+---------------------+| 1 | 大,中,小 |
| 2 | 奔馳,寶馬 |
| 3 | 2015,2016,2017,2018 || 4 | 1m,2m |
+-------------+---------------------+
2.列轉(zhuǎn)行
CREATE TABLE `option2` ( `category_id` int(10) unsigned NOT NULL COMMENT '分類id', `name` varchar(100) NOT NULL COMMENT '名稱集合') ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `option2` (`category_id`, `name`) VALUES
(1, '大,中,小 '),
(2, '奔馳,寶馬'),
(3, '2015,2016,2017,2018'),
(4, '1m,2m');mysql> select * from `option2`;
+-------------+---------------------+| category_id | name |
+-------------+---------------------+| 1 | 大,中,小 |
| 2 | 奔馳,寶馬 |
| 3 | 2015,2016,2017,2018 || 4 | 1m,2m |
+-------------+---------------------+
+-------------+--------+| category_id | name |
+-------------+--------+| 1 | 大 |
| 1 | 中 |
| 1 | 小 |
| 2 | 奔馳 |
| 2 | 寶馬 |
| 3 | 2015 |
| 3 | 2016 |
| 3 | 2017 |
| 3 | 2018 |
| 4 | 1m || 4 | 2m |
+-------------+--------+
select a.category_id,substring_index(substring_index(a.name,',',b.category_id),',',-1) as name from `option2` as ajoin `option2` as b on b.category_id<=(length(a.name) - length(replace(a.name,',',''))+1)order by a.category_id,b.category_id;
mysql> select a.category_id,substring_index(substring_index(a.name,',',b.category_id),',',-1) as name from `option2` as a -> join `option2` as b on b.category_id<=(length(a.name) - length(replace(a.name,',',''))+1) -> order by a.category_id,b.category_id;
+-------------+--------+| category_id | name |
+-------------+--------+| 1 | 大 |
| 1 | 中 |
| 1 | 小 |
| 2 | 奔馳 |
| 2 | 寶馬 |
| 3 | 2015 |
| 3 | 2016 |
| 3 | 2017 |
| 3 | 2018 |
| 4 | 1m || 4 | 2m |
+-------------+--------+
mysql表數(shù)據(jù)行列如何實(shí)現(xiàn)轉(zhuǎn)換就先給大家講到這里,對(duì)于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會(huì)捕捉一些行業(yè)新聞及專業(yè)知識(shí)分享給大家的。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了加格達(dá)奇免費(fèi)建站歡迎大家使用!
創(chuàng)建測(cè)試數(shù)據(jù)表及數(shù)據(jù)
行轉(zhuǎn)列后,期望得到以下結(jié)果
行轉(zhuǎn)列,可以使用group_concat()函數(shù)結(jié)合group by實(shí)現(xiàn)。
group_concat()函數(shù)可以得到表達(dá)式結(jié)合體的連結(jié)值,默認(rèn)分隔符為逗號(hào),可以通過separator設(shè)置為其他分隔符。
注意:group_concat()函數(shù)對(duì)返回的結(jié)果有長(zhǎng)度限制,默認(rèn)為1024字節(jié),不過對(duì)于正常的情況已經(jīng)足夠。
關(guān)于group_concat()函數(shù)的使用可以參考我之前的文章:《mysql函數(shù)concat與group_concat使用說明》
創(chuàng)建測(cè)試數(shù)據(jù)表及數(shù)據(jù)
列轉(zhuǎn)行后,期望得到以下結(jié)果
列轉(zhuǎn)行比行轉(zhuǎn)列復(fù)雜,對(duì)于列內(nèi)容是用分隔符分隔的數(shù)據(jù),我們可以使用substring_index()函數(shù)進(jìn)行分割輸出,并結(jié)合笛卡爾積來實(shí)現(xiàn)循環(huán)。
mysql表數(shù)據(jù)行列如何實(shí)現(xiàn)轉(zhuǎn)換就先給大家講到這里,對(duì)于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會(huì)捕捉一些行業(yè)新聞及專業(yè)知識(shí)分享給大家的。
當(dāng)前標(biāo)題:mysql表數(shù)據(jù)行列如何實(shí)現(xiàn)轉(zhuǎn)換
當(dāng)前路徑:http://jinyejixie.com/article26/iishjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、域名注冊(cè)、響應(yīng)式網(wǎng)站、虛擬主機(jī)、定制網(wǎng)站、全網(wǎng)營(yíng)銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)