将SQL列中的唯一值分组为标题,将另一列分组为子标题,将另一列分组为子子标题使用PHP

时间:2013-10-08 21:04:30

标签: php mysql sql

我有一个表格,其列和值类似于:

|country  |region  |city       |
|------------------------------|
|USA      |Maine   |Bar Harbor |
|Australia|Victoria|Melbourne  |
|Spain    |Valencia|Enguera    |
|Australia|Victoria|Colbo      |
|USA      |New York|NYC        |

我想按字母顺序显示这个:

Australia
 Victoria
  Colbo
  Melbourne

Spain
 Valencia
  Enguera

USA
 Maine
  Bar Harbor
 New York
  NYC

我试图使用嵌套for循环,我在此问题中建议:How do I get unique values from a column and group them with values from another column? 但是我添加第三个值列时遇到了困难。

2 个答案:

答案 0 :(得分:0)

  • 按国家,地区,城市从给定的表格顺序中选择。
  • 循环结果集并打印字段。 (除了我在下面描述的例外情况。)(X)
  • 每次迭代后保存最后一条记录
    • (X)如果与之前的
    • 不相同,则仅打印国家/地区
    • (X)并且如果国家/地区与之前的地区不相等,则仅打印该区域。

(当你跳过打印时,你可以打印几个空格,以创建一个像你的例子中的列表式视图。)

答案 1 :(得分:0)

希望工作

    select country,region,city from table group by country,region 
order by country asc,region desc ,city desc