Tag: join

MySQL: GROUP_CONCAT function

Posted by – December 11, 2013

在 MySQL 上經常遇到如下的資料:

id    value

 1     A

 1     B

 1     C

 2     A

 2     C

這種情況在要輸出報表的時候就覺得很麻煩,一旦 Group By 起來,就失去了 value 的內容。不想丟失 value 的內容也不想出現多筆重複的 id 就得多下幾次 sql 才能取得完整的資料。

今天又是一個偶然在 StackOverflow 上看到 GROUP_CONCAT() 這個沒見過的指令,馬上試試有什麼效果。

SELECT id, GROUP_CONCAT(value) as values FROM table GROUP BY id ORDER BY id

就能得到以下的結果:

id=1, values=A,B,C
id=2, values=A,C

神方便啊,在 MySQL 的文件中有完整的 GROUP_CONCAT 用法,包括可以排序,改變分隔符號。例如:

SELECT id, GROUP_CONCAT(value ORDER BY value DESC SEPARATOR ': ') as values FROM table GROUP BY id ORDER BY id

結果就變這樣:

id=1, values=C: B: A

id=2, values=C: A

製作報表就靠它了。

Javascript: Repeat Character N Times

Posted by – September 13, 2013

開發過中常碰到一種情況是希望某字串能重複出現數次。

以前端開發來說,希望用 JavaScript 來重複產生 HTML elements 的時候,覺得用 for 迴圈寫這個也太囉嗦。

有個比較簡單的 "語法" 來處理這個情況。

Array(11).join("a");

這樣就可以得到 11 - 1 個 a,aaaaaaaaaa。

產生重複 elements 就如法炮製,

$('ul').html(Array(5).join('<li class="whatever">list</li>'));

MySQL: Displaying Rows With COUNT 0 With Group By

Posted by – October 14, 2011

MySQL 裡用 Count 和 Group By 來做統計是常用的寫法。舉例來說,以下兩個 table,一個紀錄公司行號的資料,一個紀錄員工資料。

Company
id company
1 Google
2 Microsoft
Employee
id employee company
1 Jack Google
2 Eric Microsoft

More