如何在CodeIgniter中用MySQL按分组划分所有列并分段展示?
嘿,我来帮你搞定这个数据整理和格式输出的问题!你已经把数据插入MySQL了,现在只需要两步:先把数据按日期分组查询出来,再整理成你想要的Markdown样式就行。下面我先把你要的目标输出用标准Markdown呈现,再告诉你具体怎么实现:
所需输出:
日期 2017-2018
- Sherlock: Detective
- Elon Musk: Genius
- Leo: Hero
日期 2015-2016
- Robin: Detective
- Caprio: Hero
日期 2014-2015
- Snow: hero
- Mr.x: Unknown
你的MySQL数据表(格式化后)
+----+------------+----------+------------+ | id | date_from | name | desc | +----+------------+----------+------------+ | 1 | 2014-2015 | snow | hero | | 2 | 2014-2015 | Mr.x | unknown | | 3 | 2015-2016 | Robin | detective | | 4 | 2015-2016 | Caprio | hero | +----+------------+----------+------------+
实现方法推荐
你可以在**应用层(比如Python/PHP/Java)**处理查询结果,这样能灵活控制输出格式:
- 先写SQL查询,按日期倒序获取所有数据:
SELECT date_from, name, `desc` FROM your_table_name ORDER BY date_from DESC;
(注意desc是MySQL关键字,要用反引号包裹避免报错)
- 用编程语言遍历结果,按日期分组输出:
举个Python的简单例子:
import mysql.connector # 连接数据库(替换成你的数据库信息) db = mysql.connector.connect( host="your_host", user="your_user", password="your_pass", database="your_db" ) cursor = db.cursor() cursor.execute("SELECT date_from, name, `desc` FROM your_table ORDER BY date_from DESC") current_date = None print("## 所需输出:\n") for date_from, name, desc in cursor: # 日期切换时输出新的标题 if date_from != current_date: current_date = date_from print(f"### 日期 {current_date}") # 输出人物和描述,用Markdown列表格式 print(f"- **{name}**: {desc.capitalize()}") # 可选:统一首字母大写,和目标格式更匹配 cursor.close() db.close()
运行这段代码就能直接生成你要的Markdown格式内容啦,要是用其他语言,思路也是一样的:先按日期分组,再逐个输出标题和列表项。
内容的提问来源于stack exchange,提问作者lukman nakib
相关产品推荐
相关产品推荐

