2012-04-14 7 views
0

habe ein kleines kleines Problem, ich hoffe, jemand kann mir helfen.Daten Bestellproblem in MYSQL

Ich habe folgende Datenmenge in MYSQL:

SELECT * FROM account; 

pk | customer 
1 | 1 
2 | 0 
3 | 1 

ich die Kunden Spalte nur brauchen, aber ich brauche es, wie oben zum Beispiel in der gleichen Reihenfolge zu sein:

customer 
1 
0 
1 

Allerdings, wenn ich versuche, und führe folgenden Befehl aus, bekomme ich folgendes:

SELECT customer FROM account 

customer 
0 
1 
1 

habe ich schon folgendes probiert w ith kein Glück:

SET @rownum=0; 
SELECT @rownum:[email protected]+1 as rank, customer FROM account 

rank | customer 
1 | 0 
2 | 1 
3 | 1 

UPDATE: Ich habe vergessen, etwas Wichtiges hinzuzufügen. Ich kann mich nicht auf die Anordnung durch den Primärschlüssel verlassen, hauptsächlich weil der Primärschlüssel in einigen Fällen ein Varchar und nicht Integer sein könnte.

Ich brauche die Reihenfolge, in der die Daten in die Datenbank eingefügt wurden. Wenn ich dieselbe Abfrage ablege, die Varchar-Werte zurückgibt, ist sie in der richtigen Reihenfolge.

Irgendwelche Ideen?

Antwort: SQL query no order by question

+0

Sie Ihr Ergebnis nach Pk Spalte –

+0

Die pk bestellen kann nicht beides sein eine ganze Zahl und ein varchar .. es kann ein varchar sein ein enthält, Ganzzahl in Varchar-Form. – Arth

+0

Erneut voll bewusst, dass ein Primärschlüssel ein bestimmter Datentyp wie char, varchar, Integer usw. sein muss und es in eine andere umgewandelt werden kann. Ich meinte damit, dass ich eine ähnliche Abfrage ausführen würde, die eine Liste von Varchar-Werten zurückgibt, die in der gleichen Reihenfolge erschienen sind. –

Antwort

4
SELECT customer FROM account ORDER BY pk ASC 
+0

Hallo Evan - Sorry, ich habe vergessen, etwas Wichtiges hinzuzufügen. Ich kann mich nicht auf die Bestellung mit dem Primärschlüssel verlassen. Vor allem, weil der Primärschlüssel unter Umständen ein Varchar und nicht Integer sein könnte. –

+0

Beat mich einfach, glaube nicht, dass Sie die ASC obwohl! – Arth

+0

@LewisWheeler warum haben Sie dann gebeten, die gleiche Reihenfolge zu haben? Wenn nicht durch PK dann durch was? – poncha

1
SELECT * FROM account 
ORDER BY pk; 
0

Sie können die Reihenfolge festlegen, ohne dass die Spalte auswählen. So verwenden Sie dieses

SELECT `customer` from `account` ORDER BY `pk` ASC 
0

Mit dieser SQL:

SELECT customer FROM account order by PK 
+0

Ich würde die ORDER BY Groß- und Kleinschreibung der PK. – Arth