我需要知道如何编写查询,或者如何完成此操作。
我有一张表events
,结构说:
| name | date | title |
| blue | 2014-01-28 | some title 1 |
| blue | 2014-01-28 | some title 2 |
| blue | 2014-01-28 | some title 3 |
| blue | 2014-01-28 | some title 4 |
| red | 2014-01-29 | some title 1 |
| red | 2014-01-29 | some title 2 |
| red | 2014-01-29 | some title 3 |
| red | 2014-01-29 | some title 4 |
我想做什么,是按每个日期(组?)选择,然后在php之后列出它们就像
一样<h1>2014-01-28</h1>
<ul>
<li>some title 1</li>
<li>some title 2</li>
<li>some title 3</li>
<li>some title 4</li>
</ul>
<h1>2014-01-29</h1>
<ul>
<li>some title 1</li>
<li>some title 2</li>
<li>some title 3</li>
<li>some title 4</li>
</ul>
那种性质......我可以从那里拿走它。
答案 0 :(得分:2)
您可以尝试此查询
SELECT date, GROUP_CONCAT(title) As title
FROM table GROUP BY date
这将为您提供如下输出
date | title
2014-01-28 | some title 1,some title 2,some title 3,some title 4
然后使用PHP解析结果。
注意: GROUP_CONCAT()具有1024字节的限制。如果你的标题长度更长,请在使用GROUP_CONCAT函数之前考虑
<强>参考强>
http://www.mysqlperformanceblog.com/2013/10/22/the-power-of-mysqls-group_concat/