前提: UNION時は取得カラム数を揃えないとNG
ソース:http://qiita.com/suin/items/3ada90eaf2e808e510b8
mysql> SELECT * FROM news ORDER BY date DESC LIMIT 5;
+----------------+----------+------------+
| title | category | date |
+----------------+----------+------------+
| コラム2 | koramu | 2012-01-24 |
| コラム1 | koramu | 2012-01-23 |
| エンタメニュース3 | entame | 2012-01-23 |
| 経済ニュース3 | keizai| 2012-01-23 |
| 政治ニュース3 | seiji | 2012-01-23 |
+-----------------+----------+------------+
# 追加要件
# - 「コラムは最新1件を必ず表示する」
# - 「時系列順に表示されること」
mysql> (SELECT * FROM news WHERE category != 'koramu' ORDER BY date DESC LIMIT 4)
-> UNION
-> (SELECT * FROM news WHERE category = 'koramu' ORDER BY date DESC LIMIT 1)
-> ORDER BY date DESC;
+-------------------+----------+------------+
| title | category | date |
+-------------------+----------+------------+
| コラム2 | koramu | 2012-01-24 |
| 政治ニュース3 | seiji | 2012-01-23 |
| エンタメニュース3 | entame| 2012-01-23 |
| 経済ニュース3 | keizai | 2012-01-23 |
| 経済ニュース2 | keizai | 2012-01-22 |
+-------------------+----------+------------+