首頁  >  文章  >  資料庫  >  MySQL 以數位輔助表實現複雜的列變行

MySQL 以數位輔助表實現複雜的列變行

黄舟
黄舟原創
2017-02-17 13:12:541450瀏覽

某天,QQ上一個圈子內的網友發來一個求助信息:

PropID name   Amount
3      元寶   2
2  數:

PropID name

3      元寶

3      元寶
2      

[註]:

3 元寶2

注意, 最後一列是2,就是有2筆這樣的記錄,要變成

3 元寶3 元寶將最後記錄條數的列去掉,直接用重複的行來表示,所以依照此例,2      樂豆   3,要重複3條記錄,如下:


2      樂豆
2      樂豆2      樂豆

 

) 的普通。得換種思路,一時hang住了,就與網友Mr.W說起,他提供了數位輔助表的思路。

OK,搞定了,SQL如下:

select t1.propid,t1.name from tb t1,(select 1 as num union select 2 as num union select 3 as num ) t2 where t1.amount= t2. order by 1; 

 

中間的

,(select 1 as num union select 2 as num union select 3 as num ) t2

部份1自增到N,給個幾萬就好,然後關聯查方便一些自連接的sql判斷,select貌似也沒循環生成數字的功能。如下表nums

 

看到這裡的朋友,有更好的實作方法,請share下。

 以上就是MySQL 用數位輔助表實現複雜的列變行 的內容,更多相關內容請關注PHP中文網(www.php.cn)!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn