在特定行中按组返回

时间:2015-08-26 01:22:32

标签: php sql

我有table名称sample我只希望level row按群组返回。

level  |  value
-------------------
  1    |   jhon 
  1    |   ren
  1    |   ronron
  2    |   mark
  2    |   nonoy
  2    |   edong
  3    |   pajardo
  3    |   bughao
  3    |   mariel
  4    |   marker
  4    |   jong
  4    |   jazz
  4    |   jhon

我只想输出就是这样。

level  |  value
-------------------
  1    |   jhon 
       |   ren
       |   ronron
  2    |   mark
       |   nonoy
       |   edong
  3    |   pajardo
       |   bughao
       |   mariel
  4    |   marker
       |   jong
       |   jazz
       |   jhon

2 个答案:

答案 0 :(得分:2)

你可以在MySQL中做到这一点,虽然我不是真的推荐它:

select l, value
from (select t.*,
             (case when @l = level then NULL
                   else @l := level
              end) as l
      from table t cross join (@l := NULL) params
      order by level
     ) t;

我不推荐它,因为SQL表/结果集具有明确定义的行和列,并且它表示无序集。您需要的格式意味着给定行的定义取决于以前的行。这种操作最好在应用层完成。

答案 1 :(得分:0)

这不完全是您想要的输出,但您可以使用它来代替:

SELECT level, GROUP_CONCAT(value) FROM sample GROUP BY level
相关问题