在MySql和PHP中按年份对所有结果进行分组

时间:2016-03-07 05:08:43

标签: php mysql

我在MySql中有如下表

ID 姓名 年_

1   Manoj       1977

2   Babu        1977

3   Naren       1976

4   Kumar       1977

5   Srikanth    1976

6   Lakshmi     1983

现在我的结果如下

1   Naren       1976

2   Srikant     1976

3   Manoj       1977

4   Babu        1977

5   Kumar       1977

6   Lakshmi     1983

但是,我想要如下

1976年出生的人

1   Naren

2   Srikanth

1977年出生的人

1   Manoj

2   Babu

3   Kumar

1983年出生的人

1   Lakshmi

非常感谢你。

4 个答案:

答案 0 :(得分:0)

试试这个:

select `ID`,`Name` from `table_name` group by `Year_born`,`ID`;

此外,如果您想按ID排序,则可以将order by ID添加到上述查询中。这将为您提供按最小到最大排序的ID

同样,如果您想按Name订购,只需将order by ID替换为order by Name

Group By将以群组格式显示结果。

或者,如果您想要个人年度明智,请尝试以下查询:

select `ID`,`Name` from `table_name` where `Year_born` = '1977';

1977替换为您要过滤的年份。

答案 1 :(得分:0)

尝试 -

SELECT * FROM table_name
GROUP BY Year_born, ID
ORDER BY Year_born

答案 2 :(得分:0)

试试这个

SELECT GROUP_CONCAT(name),Year_born FROM table_name GROUP BY Year_born;

答案 3 :(得分:0)


    $get_year = "SELECT * FROM names GROUP BY YEAR(year) ORDER BY year";
    $year_result = mysqli_query($conn, $get_year);

    while($year_row = mysqli_fetch_assoc($year_result)){
        $year = $year_row['year'];
        echo $year;

        $get_year_by = "SELECT * FROM names WHERE year = $year";
        $year_by_result = mysqli_query($conn, $get_year_by);

        while($year_by_row = mysqli_fetch_assoc($year_by_result)){
            echo $year_by_row['name'];
        }
    }