|
|||
![]()
Hallo,
bitte bei folgendem Problem helfen, danke! folgende Tabelle: Name EndeZeit EndeDatum ACC00 01:00 2013-06-04 ACC00 02:00 2013-06-04 ACC00 03:00 2013-06-04 ACC00 04:00 2013-06-04 ACC01 23:00 2013-06-02 ACC01 23:45 2013-06-03 ACC01 05:30 2013-06-04 Wie kann ich aus dieser Tabelle, als Beispiel, nur die jeweils zwei jüngsten Einträge ausgeben, bzw. die anderen alten Einträge löschen? Ausgabe: Name EndeZeit EndeDatum ACC00 03:00 2013-06-04 ACC00 04:00 2013-06-04 ACC01 23:45 2013-06-03 ACC01 05:30 2013-06-04 Ich wollte erst alles durchnummerieren und dann alles was >= 3 ist löschen. Ich weiß aber nicht wie bei neuem Namen von vorne durchnummeriert werden soll! SELECT @rownum := @rownum +1 `rank` , `y` . * FROM ( SELECT @rownum :=0 ) AS `z` , logbestand AS `y` ORDER BY `Name` ASC , CONCAT( EndeDatum, ' ', EndeZeit ) DESC rank Name EndeZeit EndeDatum 1 ACC00 04:00 2013-06-04 2 ACC00 03:00 2013-06-04 3 ACC00 02:00 2013-06-04 4 ACC00 01:00 2013-06-04 5 ACC01 05:30 2013-06-04 -->> ab hier sollte rank wieder bei 1 beginnen 6 ACC01 23:45 2013-06-03 7 ACC01 23:00 2013-06-02 Geändert von null_Ahnung (04.06.2013 um 15:41 Uhr) |
Sponsored Links |
|
|||
![]() PHP-Code:
Edit: Das Durchnummerieren machst du bei der Ausgabe mit foreach, wobei du einfach den einen Zähler mit ausgibst.
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..." Aus einem Forum. Geändert von explanator (04.06.2013 um 16:34 Uhr) |
Sponsored Links |
|
|||
![]()
Bei dem angegeben Code, kommen bei 38.067 Zeilen und 4269 unterschiedliche Namen insgesamt nur 2 Zeilen heraus.
Was soll bei der 'WHERE'-Bedingung stehen, 1 kann doch nicht richtig sein?! Danke schön! |
|
|||
![]() Zitat:
Zitat:
__________________
"Wieso ist der Code schrott, ich dachte hier seien Profis..." Aus einem Forum. |
|
|||
![]()
Wie kann ich aus dieser Tabelle, als Beispiel, nur die jeweils zwei jüngsten Einträge ausgeben, bzw. die anderen alten Einträge löschen?
Ausgabe mit SELECT `Netzname`, `EndeZeit`, `EndeDatum` From logbestand WHERE 1 ORDER BY `EndeDatum` DESC, `EndeZeit` DESC Limit 2 : Name EndeZeit EndeDatum ACC01 05:30 2013-06-04 ACC00 04:00 2013-06-04 So will ich es eigentlich haben: -->> Wie kann ich aus dieser Tabelle, als Beispiel, pro 'Name' nur die jeweils zwei jüngsten Einträge ausgeben, bzw. die anderen alten Einträge löschen? Ausgabe: Name EndeZeit EndeDatum ACC00 04:00 2013-06-04 ACC00 03:00 2013-06-04 ACC01 05:30 2013-06-04 ACC01 23:45 2013-06-03 Danke schön! |
![]() |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Mysql: Tabelleneinträge zählen mit gleichen Werte in einer Spalte zählen? | braindead | Serveradministration und serverseitige Scripte | 11 | 11.05.2008 13:47 |