今天 case 遇到一個問題,會員的 table 有三個欄位,分別記錄了寶寶 A、寶寶 B、寶寶 C 的生日年分,後台需要所有的生日年分統合當作下拉選單去篩選,如果只有一個欄位的話還好辦,直接 SELECT 並且 GROUP 就做掉了,但今天有三個欄位要組成一個選項叫要點技巧了,解法如下。
tbl_year
y_id 索引
y_y1 年份 1
y_y2 年份 2
y_y3 年份 3
方法一:建立 tempory table
DROP TABLE IF EXISTS temp_year; CREATE TEMPORARY TABLE temp_year ( t_year INT ) ENGINE = MyISAM ; INSERT INTO temp_year SELECT y_y1 FROM tbl_year; INSERT INTO temp_year SELECT y_y2 FROM tbl_year; INSERT INTO temp_year SELECT y_y3 FROM tbl_year; SELECT * FROM temp_year GROUP BY t_year ORDER BY t_year DESC;
方法二:使用 union 大法
SELECT y_y1 AS theYear FROM tbl_year UNION SELECT y_y2 FROM tbl_year UNION SELECT y_y3 FROM tbl_year ORDER BY theYear DESC
這兩種方式會得到相同的結果
沒有留言:
張貼留言