MySQL數據庫將多條記錄的單個字段合並成一條記錄


原SQL

SELECT acc.id,acc.acc_username,acc.acc_showname,T_PM_ROLE.role_name FROM  T_ACCOUNT acc,T_ACCOUNT_R_ROLE accRole ,T_PM_ROLE  WHERE acc.is_active =1 AND (accRole.is_active =1 AND  acc.id = accRole.acc_id) AND accRole.role_id = T_PM_ROLE.id
ORDER BY acc.id  

結果,有一個人有兩個角色,如果想要將兩個角色合並該如何呢?

答案:使用 group_concat函數

注:group_concat只有與group by語句同時使用才能產生效果

 

SELECT acc.id,acc.acc_username,acc.acc_showname,GROUP_CONCAT(T_PM_ROLE.role_name) FROM  T_ACCOUNT acc,T_ACCOUNT_R_ROLE accRole ,T_PM_ROLE  WHERE acc.is_active =1 AND (accRole.is_active =1 AND  acc.id = accRole.acc_id) AND accRole.role_id = T_PM_ROLE.id
 
GROUP BY acc_id
  
ORDER BY acc.id  

 

 

 

參考:http://www.cnblogs.com/wangtao_20/archive/2011/02/23/1961860.html

   https://www.2cto.com/database/201302/188404.html

 


免責聲明!

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



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