close

這是我昨天開發時所遇到的問題,因為需求關係,所以將參數(id)儲存像table2

Table1

id name
1 數學
2 國文
3 自然

Table2

id course_id
1 1,2
2 1,3
3 3

將上面合併結果

course_id name
1,2 數學,國文
1,3 數學,自然
3 自然

 

因為要顯示成結果那樣,所以就找到相關文章,原來MySql有相關方法可以解

SELECT b.course_id, GROUP_CONCAT(a.name) name
FROM Table2 b
INNER JOIN Table1 a
ON FIND_IN_SET(a.id, b.course_id) > 0
GROUP BY b.course_id

上面的範例可以看到先使用FIND_IN_SET(a.id,b.course_id) > 0方法

將資料比對出來後,在用GROUP_CONCAT(a.name)將名稱重新用逗號隔開並顯示

後記

原本以為還要自己寫迴圈並拆解逗號的ID....

還好找到MySql有相關方法可解決!!

補充
MySql網址

 

arrow
arrow

    小小工程師林可可 發表在 痞客邦 留言(0) 人氣()