Zeilen herauslesen
Joachim
- datenbank
Hi
Wie kann ich bestimmte Zeilenbereiche herausfiltern.
So geht es zum Beispiel nur solange man keine Zeile löscht:
$sql = "select * from warteliste where nr>=$zeilenanfang and nr<=$zeilenende";
nr ist eine Autoinkrement - Spalte ... Wenn man jetzt aber eine Zeile löscht stimmt alles nicht mehr. Dann ist die Spalte 10 nicht mehr Nummer 10! Wie kann man die Zeilen eindeutig aufrufen? Zum Beispiel Zeile 5 bis 10?
Vielen Dank
Hallo,
Wie kann ich bestimmte Zeilenbereiche herausfiltern.
So geht es zum Beispiel nur solange man keine Zeile löscht:
$sql = "select * from warteliste where nr>=$zeilenanfang and nr<=$zeilenende";
nr ist eine Autoinkrement - Spalte ... Wenn man jetzt aber eine Zeile löscht stimmt alles nicht mehr. Dann ist die Spalte 10 nicht mehr Nummer 10! Wie kann man die Zeilen eindeutig aufrufen? Zum Beispiel Zeile 5 bis 10?
$sql = "SELECT (Select Count (*) FROM [warteliste] as tmpwarteliste WHERE [tmpwarteliste].[nr] < [warteliste].[nr])+1 AS Zeilennummer, warteliste.*
FROM warteliste
WHERE ((((Select Count (*) FROM [warteliste] as tmpwarteliste WHERE [tmpwarteliste].[nr] < [warteliste].[nr])+1)>4 And ((Select Count (*) FROM [warteliste] as tmpwarteliste WHERE [tmpwarteliste].[nr] < [warteliste].[nr])+1)<11));"
sollte eigentlich funktionieren
Viele Grüße aus Köln
Markus
Hallo Marcus, hallo Joachim
»» Wie kann ich bestimmte Zeilenbereiche herausfiltern.
So geht es zum Beispiel nur solange man keine Zeile löscht:
$sql = "select * from warteliste where nr>=$zeilenanfang and nr<=$zeilenende";
»»Wie kann man die Zeilen eindeutig aufrufen? Zum Beispiel Zeile 5 bis 10?
$sql = "SELECT (Select Count (*) FROM [warteliste] as tmpwarteliste WHERE [tmpwarteliste].[nr] < [warteliste].[nr])+1 AS Zeilennummer, warteliste.*
FROM warteliste
WHERE ((((Select Count (*) FROM [warteliste] as tmpwarteliste WHERE [tmpwarteliste].[nr] < [warteliste].[nr])+1)>4 And ((Select Count (*) FROM [warteliste] as tmpwarteliste WHERE [tmpwarteliste].[nr] < [warteliste].[nr])+1)<11));"
sollte eigentlich funktionieren
Mit MySQL geht das garantiert nicht, das unterstützt keine Subselects.
Deshalb die MySQL-Variante:
select * from warteliste order by nr limit 5,5
gibt die Zeilen 5 bis 10 aus. Die erste Zahl gibt die Zeile an, ab der begonnen werden soll. Die zweite Zahl die Anzahl der auszulesenden Zeilen.
Das order by ist an sich nicht notwendig, ordnet aber sicherheitshalber nach dem Autoincrementfeld.
Viele Grüße
Antje
Hallo Antje,
Mit MySQL geht das garantiert nicht, das unterstützt keine Subselects.
Sorry, dann wieder alles zurück.
Ich arbeite nicht mit MySQL sondern mit SQLServer bzw. für kleinere Projekte mit Access und hab halt in meinem jugedliche Leichtsinn unterstellt, daß MySQL dieses auch beherrschen sollte/könnte.
Viele Grüße
Markus