Select Anweisung
Simone
- datenbank
0 wahsaga0 Simone0 daniel84
Hallo
Bei einer Datenbankabfrage benötige ich eine Sortierung nach den IDs
Meine Abfrage lautet:
$sql = "SELECT * FROM tabel WHERE ID IN ($element) ";
.... WHERE ID IN (3906,3858,220,3767,2831,3907,2569,1269,3908,3770)..
Das Ergebnis der Abfrage ist jedoch nicht in der Reihnfolge wie es die IN Anweisung vorgibt!
Auch das lesen des Manuals brachte mir keine "Eingebung"
Wie bekomme ich die Abfrageausgabe entsprechend dem Abfragemuster.
Danke
Simone
hi,
Meine Abfrage lautet:
$sql = "SELECT * FROM tabel WHERE ID IN ($element) ";.... WHERE ID IN (3906,3858,220,3767,2831,3907,2569,1269,3908,3770)..
Das Ergebnis der Abfrage ist jedoch nicht in der Reihnfolge wie es die IN Anweisung vorgibt!
wieso sollte es?
IN gibt nun mal keine reihenfolge vor, sondern nur eine unsortierte menge an möglichen werten.
Wie bekomme ich die Abfrageausgabe entsprechend dem Abfragemuster.
in dem du anschließend in der sprache, mit der du die daten weiter verarbeitest, eine sortierung nach deinen wünschen vornimmst.
gruß,
wahsaga
Hi,
Wie bekomme ich die Abfrageausgabe entsprechend dem Abfragemuster.
in dem du anschließend in der sprache, mit der du die daten weiter verarbeitest, eine sortierung nach deinen wünschen vornimmst.
oder mittels der SQL-Statement angefuegten SORT-Klausel, also
[...] SORT BY ID ASC
die Daten gleich sortiert von MySQL (oder so) abholst.
Gruss,
Ludger
Hi,
...je nach Dialekt kann es auch "ORDER BY ID ASC" oder (DESC)
heißen.
Grüße
Uhfe
Hi,Ludger
Genau das versuche ich ;)
Die Sortierung sollte beibehalten werden.
Der Versuch ORDER BY FIELD(id erscheint noch nicht zu gehen.
Danke
Simone
Hi,
Die Sortierung sollte beibehalten werden.
welche Sortierung eigentlich?
SELECT
*
FROM
tabel
WHERE
(ID = 3906)
UNION SELECT
*
FROM
tabel
WHERE
(ID = 3858)
UNION SELECT
*
FROM
tabel
WHERE
(ID = 220)
...
liefert die Datensaetze in der von Dir genannten Reihenfolge.
Gruss,
Ludger
Hi, Ludger
Die Sortierung wird im Vorfeld festgelegt.
Ist die Blätterfunktion einer Seitensuchfunktion.
Ich übergebe eindeutige Schlüssel und brauch dadurch nicht nochmal die gesamte Suche ab position X starten
Ich werde deinen Code testen.
Danke
Simone
hi,
oder mittels der SQL-Statement angefuegten SORT-Klausel, also
[...] SORT BY ID ASC
die Daten gleich sortiert von MySQL (oder so) abholst.
wenn ich richtig verstanden habe, will sie die bei IN angegebene "reihenfolge",
(3906,3858,220,3767,2831,3907,2569,1269,3908,3770)
genau so von links nach rechts (oder auch umgekehrt) als "sortierung" erhalten.
das ist nach gängiger mathematik aber weder ASC- noch DESCENDING.
gruß,
wahsaga
Hi,wahsaga
Genau das möchte ich ;)
Danke Simone
HI,
Ok, danke nochmal an alle ;))
Ist ein gutes Bord hier.
Ich habs'
.... WHERE ID IN ($element) ORDER BY FIELD(ID,$element) ...
Simone
Hallo Simone,
Ist ein gutes Bo[a]rd hier.
...autsch! ;-)
Gruss,
Daniel