以下的文章主要介紹的是如何正確對mysql表字段進行整理,本文是以一問一答的方式來說明其實際操作的具體步驟,這樣就會讓你更深入的了解,以下就是文章的具體內容闡述,希望你浏覽之後會有所收獲。
表dz_tupian
當前表的數據
mysql表字段 phid adress
- 001 whai
- 002 fdsadf
- 003 fdsfsdaf
- 002 dfewads
- 003 fwerasere
- 001 hfghgrtt
- ... ...
想要實現的效果:
字段 phid adress
- 001 whai hfghgrtt
- 002 fdsadf dfewads
- 003 fdsfsdaf fwerasere
phid裡有很多相同的數字 先找出重復的 可能有一個 或者60個)
然後將重復的行 整合為一行---- phid相同的行 第二個mysql表字段adress依次
添加到新整合的一行的adress字段裡
這是我的思路 不知如何寫代碼
問題補充:第二個方法挺好 在mysql數據庫裡 查詢 然後把查詢的結果導出 就可以得到我要的效果
但有個問題 表dz_tupian 字段adress 類型是mediumtext mediumtext最大長度是16777215個字符。
為何導出的查詢結果adress最後不完整 有殘缺 看得出來相同phid的adress值沒有完全添加到adress字段裡
這是為什麼
問題好像不是adress字段 字符的數量限制 可是查詢的結果確實是如果相同phid的數量多的話 對應的adress也就多 就出現最後不完整 少的 就可以完整的顯示出來
剛查過 adress字段 最多的是533個字符 可是mysql表字段adress 類型是mediumtext mediumtext最大長度是16777215個字符 這就是不完整的原因 為什麼????
級最佳答案補充回答:
group_concat函數有大小限制,缺省是1024,你可以根據自己的要求修改這個大小,有兩種方法
1.在mysql配置文件中加上
group_concat_max_len = 102400 #你要的最大長度
2.可以簡單一點,執行語句:
- mysql> SET GLOBAL group_concat_max_len=102400;
- Query OK, 0 rows affected (0.01 sec)
具體的可以看參考資料的連接
mysql可以使用group_concat函數了,以下語句在mysql5中測試通過
- select phid,group_concat(adress order by adress separator " ") as adress
- from dz_tupian
- group by phid
以上的相關內容就是對整合mysql表字段的介紹,望你能有所收獲。