Agrupar por y mostrar inputs bajo date

Aquí están mis datos:

id date 1 2009-01-01 10:15:23 2 2009-01-01 13:21:29 3 2009-01-02 01:03:13 4 2009-01-03 12:20:19 5 2009-01-03 13:01:06 

Lo que me gustaría hacer es agrupar para cada date y luego enumerar los numbers de identificación debajo de cada date. ¿Debo get los distintos valores de date y luego recorrerlos para get las inputs que caen en la date? es esto eficiente?

para que mi salida se vea así:

 2009-01-01 1 2 2009-01-02 3 2009-01-03 4 5 

 $query = "SELECT DATE(date) as mydate, id FROM your_data_table ORDER BY mydate, id"; $result = $pdo->query($query); $oldDate = false; while ( list($date, $id) = $result->fetch(PDO::FETCH_NUM) ) { if ( $oldDate != $date ) { echo "$date\n$id\n"; $oldDate = $date; } else { echo "$id\n"; } } 

En lugar de hacerlo en varias consultas, solo obtiene todos los datos a la vez. Si solo necesita algunas dates, simplemente coloca una cláusula WHERE antes de ORDER BY .

Sus dates almacenadas tienen información de time (el tipo de la columna es DATETIME o TIMESTAMP), para hacer un grupo, necesita extraer solo la parte de la date de su intervalo de time, puede usar la function DATE () .