![]() |
Datenbank: MySQL • Version: 4.1.13 • Zugriff über: ZEOS
MySQL und Zeilennummer im Select
Guten Morgen zusammen!
Gibt es bei MySQL eine Möglichkeit, in einer Query dem Resultset dynamisch Zeilennummern hinzuzufügen. Sprich ich habe ein
SQL-Code:
. Und das Resultset hätte ich gerne von 1 aufsteigend durchnummeriert, also nicht einen Autozähler für die gesamte Tabelle, sondern nur für die jeweilige Abfrage.
SELECT feld1, feld2, feld3 FROM tabelle WHERE feld5 = bedingung
SChönen Dank im Voraus, |
Re: MySQL und Zeilennummer im Select
Dann lass doch einfach eine Variable bei jeder Ausgabe um 1 erhöfen und setz sie davor, dahinter oder wo auch immer du die Nummerierung stehen haben willst...
Gruß Thomas |
Re: MySQL und Zeilennummer im Select
Danke! Das war der Hinweis den ich brauchte, mit
SQL-Code:
funzt es nun!
SET @zaehler = 0;
SELECT LfdNr, name, (@zaehler := @zaehler + 1) as RecNo FROM lablabore WHERE LfdNr > 2 |
Re: MySQL und Zeilennummer im Select
Mal so eine Frage, wofür braucht man das in der Tabelle?
Bye |
Re: MySQL und Zeilennummer im Select
Um bei der Darstellung in nem DBGrid ne laufende Positionsnummer zu haben, die ansonsten aber nicht genötigt wird -> ergo es wären unnötige Daten in Tabelle, würde ich die Positionsnr mit speichern.
//Edit hab aber doch noch ein Problem... Über den EMS MySQL-Manager funktioniert obiges Statement. Sete ich es aber üdber die ZeosKomponente ab, bekomme ich ne Fehlermeldung, ich solle mir die Syntax beim ; anschauen... Jemand eine Ahnung, woran das liegen könnte? |
Re: MySQL und Zeilennummer im Select
Hallo,
wahrscheinlich musst Du das Kommando in 2 Einzelschritte aufteilen. Als erstes die Set-Anweisung und daran anschließend das Select-Statement. |
Re: MySQL und Zeilennummer im Select
Hab ich auch schon versucht, ja. Aber dann bekomm ich für @zaehler NULL zurück :?
|
Re: MySQL und Zeilennummer im Select
Hallo Thomas,
ich habe gerade kein ZEOS zur Hand, aber vielleicht gibt es dort eine gesonderte Komponente mit der du SQL Batches verarbeiten kannst? Grüße vom marabu |
Re: MySQL und Zeilennummer im Select
Hai ihr,
da es bei den Zeos wohl nicht so einfach geht um einen SQL-Batch zu verarbeiten (der ZSQLProzessor ist wohl nicht für SELECTs geeignet) habe ich mir eine "etwas andere" Lösung überlegt ;-)
Delphi-Quellcode:
Ich habe in meiner SELECT-Anweisung ein "Dummyfeld" dem ich einfach ein OnGetText zuweise und dieses dann mit der Recordposition befülle. Nicht schön aber selten :stupid:
procedure TDemoForm.Button1Click(Sender: TObject);
begin with Query1 do begin SQL.Text := 'SELECT *, null as position FROM test WHERE id > 1'; Open; end; end; procedure TDemoForm.Query1AfterOpen(DataSet: TDataSet); begin with DataSet.FieldByName('position') do begin OnGetText := Query1recnoGetText; end; end; procedure TDemoForm.Query1recnoGetText(Sender: TField; var Text: string; DisplayText: Boolean); begin if (sender.FieldName = 'position') then Text := IntToStr(sender.DataSet.RecNo); end; |
Re: MySQL und Zeilennummer im Select
Huhu Sharky!
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz