按空记录分组

时间:2012-12-18 19:01:48

标签: mysql group-by

我的表格结构如下:

 --------------------------------------------
|  id  |  tid  | uid |   title   |   time    |
 --------------------------------------------
|  1   |   3   | 15  |           |   120333  |
 --------------------------------------------
|  2   |   3   | 15  | Lorem ip..|   120394  |
 --------------------------------------------
|  3   |   3   | 15  |           |   120344  |
 --------------------------------------------
|  4   |   2   | 15  | Lorem ip..|   128994  |
 --------------------------------------------
|  5   |   2   | 15  | Lorem ip..|   126782  |
 --------------------------------------------

我有这样的查询(它选择所有带有“uid”的记录 - 用户ID为15):

SELECT * FROM my_table WHERE uid = :uid GROUP BY tid ORDER BY time DESC

Thos工作正常,但是你有一个问题:当我显示这个查询的结果时,“title”行通常是空的。 (注意:对于每个“tid”号码,必须至少有一个“标题”)

如何强制此查询始终显示标题,因此它永远不会为空?

2 个答案:

答案 0 :(得分:2)

如果你想为Title字段取任意值,或者它们都是相同的,你可以在该列上做一个MIN()。 MIN将省略空值。

答案 1 :(得分:-2)

SELECT COALESCE(title, 'no title'), * FROM my_table WHERE uid = :uid GROUP BY tid ORDER BY time DESC