index erzeugen

fatfox

Bekanntes Mitglied
Hallo Leute,

Ich habe ein Table mit zwei Spalten:

Friends:
------------------
Name | age
------------------

Dann möchte ich Spalte "age" zwischen 10 bis 20 auswählen und in der Ausgabe noch Spalte "number" nach "age " dazu erzeugen:

Also ich möchte die Ausgabe so ausiehen:

-------------------------------
number | Name | age
-------------------------------

Ich kenne nur: select Name, age from Friends where age between 10 and 20;

Aber wie kann ich die Spalte "number" bekommen? Gibt es eine Funktion wie auto index ?



Vielen Dank für eure Bemühungen!
 
Hallo,
du musst deiner Tabelle eine Spalte "number" hinzufügen. Diese nennt man in der Regel ID.
Dieses Feld sollte zudem "auto Increment" sein, d.h der Wert wird automatisch erhöht.
Dann kannst du mit
Code:
 SELECT name, age FROM Friends WHERE age between 10 and 20 ORDER BY ID
das Ergebnis sortieren.
 
Hallo,
du musst deiner Tabelle eine Spalte "number" hinzufügen. Diese nennt man in der Regel ID.
Dieses Feld sollte zudem "auto Increment" sein, d.h der Wert wird automatisch erhöht.
Dann kannst du mit
Code:
 SELECT name, age FROM Friends WHERE age between 10 and 20 ORDER BY ID
das Ergebnis sortieren.

Hi sunny-boy,

Ich möchte nur die Leute, die 10 < age < 20 nummerieren, nicht alle.

z.B. In meinem Original Table habe ich 100 Leute, sie sind nach Name soritert, age zwischen 10 bis 20 gibt es nur 30 Leute. Ich möchte nur die 30 Leute nummberien nach age. also ich möchte eine Numerierung von 1 bis 30.

(Nach deiner Methode werde ich die ID von originalem Table bekommen.)

Weiß du, wie funktioniert es?
 
In MySQL?

SQL:
SET @num:=1;
SELECT @num:=@num+1 as row, name, age FROM Friends WHERE age between 10 and 20;
 
Zuletzt bearbeitet von einem Moderator:
In MySQL?

SQL:
SET @num:=1;
SELECT @num:=@num+1 as row, name, age FROM Friends WHERE age between 10 and 20;

Danke Fassy!!!

Aber deine Methode ist doch nicht ganz richtig, wenn ich sortieren, dann ist die Reihenfolge nicht mehr nach der age sortiert.

Also, wenn ich "order by age desc" hinzufügen

SET @num:=1;
SELECT @num:=@num+1 as row, name, age FROM Friends WHERE age between 10 and 20 ORDER BY age DESC

Dann ist die Reihenfolge nicht richtig. weiß du wie kann man das machen?
 
Zuletzt bearbeitet:
Was heißt nicht richtig?

Es wird doch bestimmt nach der age Spalte sortiert? Das einzige was ja falsch sein könnte wäre die Sortierrichtung? Oder ist dein age Spalte evtl als VARCHAR definiert? Dann würde die DB natürlich "falsch" sortieren...
 
Was heißt nicht richtig?

Es wird doch bestimmt nach der age Spalte sortiert? Das einzige was ja falsch sein könnte wäre die Sortierrichtung? Oder ist dein age Spalte evtl als VARCHAR definiert? Dann würde die DB natürlich "falsch" sortieren...

Danke fassy! Ich habe gestern vielleicht irgendwo falsch eingegeben, deshalb war die Reihenfolge falsch. Heute habe ich noch mal den Befehl eingetippt, dann ist alles richtig!

Vielen vielen Dank! 😀
 

Zurück
Oben