mysql根据列值分隔行,可能吗?

时间:2012-10-21 06:43:36

标签: mysql sql

这个问题自从过去几天以来一直困扰着我。 这就是我的想法:
一家超级大型零售商店公司在许多不同的城市,每个商店都有商店 在某一天开放。 列表数据的表格将包含(至少)两列,
(1)城市名称(2)开放日期
输出需要:多个列表,每个列表 包含订购城市的所有商店 订购的10个城市按时间顺序(按日期开放) 按字母顺序排列。
为了解决这个问题,我想到了:
获取#1:按字母顺序从表格中提取10个城市 获取#2(循环中的多次提取):迭代每个获取的城市,并获得
所有各自的商店,按日期开始订购。

我提出的上述方法完成了这项工作,但是我想知道是否存在 这是一种更简洁的方式,它包括循环通过城市的存储,同时自己获取#1,从而不会通过使用外部循环和执行许多sql执行而不是仅增加一个来增加时间复杂度。 /> 这可能吗?一个sql语句?

1 个答案:

答案 0 :(得分:0)

SELECT * FROM my_table NATURAL JOIN (
  SELECT DISTINCT city FROM my_table ORDER BY city LIMIT 10
) t ORDER BY city, opened

在循环应用程序中的结果集时拆分为单独的列表:只需检查city以查看自上次迭代后它是否已更改。在伪代码中:

for each record in resultset:
  if current city is not equal to last city then start new list
  output current record
  set last city to current city