[MySQL] ORDER BY analysiert nicht alles ?

Tim C.

Erfahrenes Mitglied
Ich wollte mir eben mal wieder ein nach Namen sortierte Liste von Datensätzen anzeigen lassen. Was muss ich feststellen ? Er macht es einfach nicht.

Mein Query
Code:
SELECT * FROM institutionen ORDER BY name ASC
Also ganz normal.

Auch wenn ich im phpmyadmin oben auf die Spalte klicke, so dass danach sortiert wird, erhalte ich kein befriedigendes Ergebnis. Oder kann es daran liegen, dass <br /> mit in dem Namen stehen ?

Fakt ist (jetzt mal stark vereinfach), dass er mir als erstes

Heinrich-Heine-Universität Düsseldorf
Institut für Biochemie und Molekularbiologie I


anzeigt, dann folgt das Institut mit ner II dran, soweit ok, dann kommt

Heinrich-Heine-Universität Düsseldorf
Universitätsklinikum
Institut für Medizinische Mikrobiologie


dann noch einige Datensätze mit Universitätsklinikum in Zeile 2. Soweit Ok, doch jetzt kommt nach einigen anderen Datensätzen nochmal

Heinrich-Heine-Universität Düsseldorf
Institut für Mikrobiologie


und dann noch mehrmals

Heinrich-Heine-Universität Düsseldorf
Universitätsklinikum
Institut für Neurophysiologie


Bin ich blöd oder was ? Sind da Rechtschreibfehler die ich nicht sehe ? Oder spinnt der Sortieralogrythmus ?
 
Wenn ich es richtig verstehe, ist nach '...Universität Düsseldorf' ein <br> drin? Könnte daran liegen, hatte ähnlich tolle Effekte mit '\t' (Tabulator) in Datensätzen.
Würde probieren REPLACE - Funktion ins SELECT einzubauen und das <br> durch Leerzeichen zu ersetzen. Hat bei mir ganz gut gerade mit Regular Expressions funktioniert.
 
Es ist so weit, ich fall vom Glauben ab ;)
Code:
$query = "SELECT ID,REPLACE(name,'<br />',' ') as name,strasse,geb,plz,stadt FROM institutionen ORDER BY name ASC";
Jetzt habe ich die Sachen schön in einer Zeile stehen, aber immer noch genauso idiotisch sortiert.
 
Hmm, very strange. Kann mir nur noch vorstellen, daß es jetzt noch an der Verwendung des Variablennamens 'as name' liegen könnte, MySql nimmt vieleicht die Originalvariable name ( im REPLACE) ?- versuchs mal wenn du die umbenennst.
Unten die sql - Anweisung, wie sie bei mir funktioniert
------------------------------------------------------------------------------------------------

$select3="SELECT TRIM(REPLACE(a.strFirma1, '\t','')) as Firma, count( s.int_id_adresse ), a.intId
FROM `fin_adressen` AS a, `fin_stellen` AS s
WHERE a.intId = s.int_id_adresse
AND TRIM(REPLACE(strFirma1, '\t','')) like $bereich_mod
GROUP BY Firma
ORDER BY Firma
";
 

Neue Beiträge

Zurück