2016-03-07 1 views
-3

У меня есть таблица в MySql как нижеГруппировка все результаты по году в MySql и PHP

IDИмяYear_born

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 

спасибо, что заранее.

+0

Что вы пробовали? Показать код –

+0

Вы пробовали группу в mysql? – sudhakar

+0

try 'group by YEAR ('your_year_column)' –

ответ

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']; 
     } 
    } 

0

Попробуйте это:

select `ID`,`Name` from `table_name` group by `Year_born`,`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 с какой год вы хотите отфильтровать.

+2

Группа выглядит так, что будет генерировать одну строку на 'Year_born' со случайным именем/id из этой группы. –

+0

не случайно. он покажет первый, какой бы он ни был в этом году. но я хочу напечатать все имена одним запросом. не заменяя год каждый раз. – Manoj

+0

@ user2099001 1-й запрос должен работать для вас тогда. –

0

Try с -

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

Попробуйте с этим

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

Я использовал запрос как «SELECT GROUP_CONCAT (name) FROM names GROUP BY YEAR (year)». Но, я получаю сообщение об ошибке: Примечание: Неопределенный индекс: имя в C: \ xampp \ htdocs \ maliflix-v1 \ names-group-by-year.php в строке 45. – Manoj

+0

@ user2099001 Попробуйте 'GROUP_CONCAT (name) AS name , Year_born ... ' –

Смежные вопросы