MYSQL同一字段下多列多行合並查詢


應用場景

在自定義表單時采用自定義表名-自定義表字段-具體內容來實現,這就需要對數據表進行處理

數據項設計思路及處理:

數據項數據庫設計采用數據唯一標識表-對應-數據表來實現

數據項唯一標識表:

 

數據項具體內容表:

 

 由此會產生一個問題那就是一對多,同一個UNkId(數據唯一標識)下會有多個數據項,相對於傳統面向對象思路來設計對象是不好設置的,

 

 那么由此就可以用到MYSQL的合並列的命令GROUP_CONCAT,語法為group_concat( [distinct] 要連接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] ),

可以將需要的字段來進行相應的合並:

效果如下(合並字段可以使用concat來進行拼接):

 

 這樣就可以得到一個近似於實體對象的String類型字符串,然后在進行相對應的轉譯即可獲得數據信息。

 想關於group_concat( [distinct] 要連接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )的mysql語句:

select GROUP_CONCAT(CONCAT(c.`name`,':',b.`data`) separator ',' ) data  from t_task_unks a
        LEFT JOIN t_task_data_ b on a.unk_id=b.unk_id
        LEFT JOIN t_task_property_ c on c.task_id=a.task_id
        where a.task_id=b.task_id and b.property_id=c.id and a.task_id=1 
        group by a.unk_id

 

-----------------------------------------------------------分割線-------------------------------------------------------------------

本筆記自用 而已,如有錯誤請指正!

GGQ


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM