Ich habe über die Verwendung von „Gruppieren nach“ nachgedacht, aber es kann nur das erste angezeigt werden, nicht das letzte.
Ich wollte eine Reihenfolge nach Zeitabfolge hinzufügen, aber „Orber nach“ kann nur nach „Gruppieren nach“ hinzugefügt werden.
Gibt es eine Möglichkeit, die größte oder kleinste Datenzeile in jeder Gruppe von Gruppen abzufragen?
Ich habe über die Verwendung von „Gruppieren nach“ nachgedacht, aber es kann nur das erste angezeigt werden, nicht das letzte.
Ich wollte eine Reihenfolge nach Zeitabfolge hinzufügen, aber „Orber nach“ kann nur nach „Gruppieren nach“ hinzugefügt werden.
Gibt es eine Möglichkeit, die größte oder kleinste Datenzeile in jeder Gruppe von Gruppen abzufragen?
Option 1: Finden Sie die größte Daten-ID über dieselbe Tabellenunterabfrage oder einen Join
<code>select * from track where id in(select max(id) from track group by target_id); or select * from track where id in(select substring_index(group_concat(id order by id desc),',',1) as maxid from track group by target_id);</code>
Option 2: Abfrage in zwei Schritten, zuerst die maximale ID in PHP abfragen und dann die Listendaten über das ID-Array abfragen
wählen Sie a.* aus(wählen Sie max(id) als ID aus der Infogruppe nach Benutzer-ID aus) b links beitreten Info a auf a.id=b.id
Speichern Sie die Abfrageergebnisse und rufen Sie sie später ab
Verwenden Sie order by
<code>select * from ( select (@mycnt := @mycnt + 1) as ROWNUM,name,age from tb where AGe < 20 order by name,age ) as A where ROWNUM = 1 </code>
Verstehen Sie nur SqlServer. Dies ist eine Nachahmung von SqlServer. Sie können es ausprobieren
<code>SELECT a.id, a.user_id, a.info, a.create_time FROM (SELECT id, user_id, info, create_time FROM tbl_user ORDER BY user_id, create_time DESC, id DESC) a GROUP BY a.user_id</code>