Autor |
Nachricht |
fuchsbau
Threadersteller
Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht:
|
Verfasst Mi 16.01.2008 14:07
Titel [solved] [MySQL] - ausgewählte Zeilen nummerieren |
|
|
Hallo Leute, folgendes Beispiel:
SELECT element_name, wertigkeit FROM elemente WHERE ... ORDER BY wertigkeit DESC
ergibt:
element7,9
element3,6
element9,4
element4,2
element8,1
Ich möchte jetzt wissen, welche Position beispielsweise element3 in dieser Auswahl einnimmt (wäre = 2),
möchte also nur für diese auswahl eine gedachte spalte anfügen, die von 1 bis n (n selektierte Elemente) runterzählt:
element7,9,1
element3,6,2
element9,4,3
element4,2,4
element8,1,5
Da gibt es einen Befehl, ich komm aber nicht drauf.
Danke für die Hilfe!
Zuletzt bearbeitet von fuchsbau am Do 17.01.2008 15:55, insgesamt 4-mal bearbeitet
|
|
|
|
|
Dyne
Dabei seit: 28.09.2007
Ort: -
Alter: 37
Geschlecht:
|
Verfasst Mi 16.01.2008 14:49
Titel
|
|
|
Du bist sicher, dass es da einen SQL-Befehl geben soll? Mir fällt keiner ein. Lässt sich doch aber auch über die Applikation lösen, z.B. in PHP mit
Code: |
$res = mysql_query("SELECT .... ");
$i=0;
while($row=mysql_fetch_assoc($res)){
$i++;
// hier die verarbeitung
} |
$i enthält dann immer die jeweilige position des datensatzes.
|
|
|
|
|
Anzeige
|
|
|
noisetoy
Dabei seit: 17.08.2007
Ort: Leipzig
Alter: 22
Geschlecht:
|
Verfasst Mi 16.01.2008 14:53
Titel
|
|
|
zwei
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Mi 16.01.2008 15:14
Titel
|
|
|
du musst wohl auf zwei sql befehle zurückgreifen, dann klappts...
Code: |
SET @counter = 0;
SELECT element_name, wertigkeit, (@counter:=(@counter+1)) as counter FROM elemente WHERE ... ORDER BY wertigkeit DESC;
|
Zuletzt bearbeitet von pixelpapst303 am Mi 16.01.2008 15:14, insgesamt 1-mal bearbeitet
|
|
|
|
|
fuchsbau
Threadersteller
Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht:
|
Verfasst Mi 16.01.2008 15:20
Titel
|
|
|
@pixelpapst303: danke, genau die vorgehensweise war's, die ich gesucht hab.
@dyne: das hatt ich auch, wollts aber bequemer geliefert bekommen, trotzdem vielen dank!
@noisetoy:
Code: | $res = mysql_query('SELECT grund FROM gruende_warum_ich_nett_zu_noisetoy_sein_sollte;');
if ( !mysql_num_rows($res) ) {
echo 'null';
} |
ausgabe: null
Zuletzt bearbeitet von fuchsbau am Mi 16.01.2008 15:30, insgesamt 3-mal bearbeitet
|
|
|
|
|
marten
Dabei seit: 12.05.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mo 12.05.2008 02:59
Titel
|
|
|
Ist es auch möglich nach der temporären @COUNTER Zahl zu filtern?
Ich bräuchte nämlich eine Möglichkeit, zum Beispiel den 3. Eintrag eines SELECT's mit WHERE 'Gruppe' = 'Blub':
Vorher (Alle Elemente):
Code: |
+ID+Gruppe+Name---+ SELECT * FROM `blub`
|01|Rot |Oval |
|02|Gruen |Kreis |
|03|Rot |Kegel |
|04|Blau |Kugel |
|05|Gruen |Quader |
|06|Rot |Quadrat|
+--+------+-------+
|
Nur die, einer Gruppe:
Code: |
+ID+Gruppe+Name---+ SELECT * FROM `blub` WHERE `Gruppe` = 'ROT'
|01|Rot |Oval |
|03|Rot |Kegel |
|06|Rot |Quadrat|
+--+------+-------+
|
Gewünschte MySQL-INTERNE-Tabelle:
Code: |
+ZAHL+ID+Gruppe+Name---+
| 1 |01|Rot |Oval |
| 2 |03|Rot |Kegel |
| 3 |06|Rot |Quadrat|
+----+--+------+-------+
|
Die gewünschte Ausgabe wäre dann für $id = 3 ($id von PHP übergeben):
Code: |
+ZAHL+ID+Gruppe+Name---+ SELECT *, `TEMP-ZAHL` FROM `blub` WHERE `Gruppe` = 'ROT'
| 3 |06|Rot |Quadrat| AND `ZAHL` = $id
+----+--+------+-------+
|
Das Ergebnis bräuchte ich - also den $id-ten Eintrag einer z.B. nach Gruppen gefilterten Liste
Vielen Dank für eure Hilfe,
Marten Maager
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Mo 12.05.2008 12:35
Titel
|
|
|
ich habe es nicht probiert, aber ich befürchte, das wird nicht klappen. denn counter ist ein interner zähler. heißt, wenn du ein statement haben willst, dass nur ein ergebnis ausspucken soll, dann wird dieser counter immer 1 sein, weil wegen nur ein ergebnis. das beisst sich also.
ich würde die abfrage würde ich dann in php machen. wäre wohl das einfachste...
|
|
|
|
|
|
|
|
Ähnliche Themen |
strato und mysql [solved]
[solved] [php/mysql] messenger funktion
[mysql] Nur aus lesen was größer als ... ist [solved]
[solved] / [PHP/MySQL] Ergebnis der Abfrage = 0
[solved][MySQL] neue/alte Geburtstage ermitteln.
[solved] / [PHP/MySQL] Abfrage: Alte Veranstaltungen filtern
|
|