Sortierung nach Alphabet

soa

Erfahrenes Mitglied
Hallo,

ich habe ein kleines Problem, bei der alphabetischen Ausgabe einer DB-Tabelle.

Hier meine SQL Abfrage:
PHP:
SELECT DISTINCT * FROM Tabelle
WHERE Feld1 LIKE '%$suchen%' OR Feld2 LIKE '%$suchen%' ORDER BY Feld1 ;") or die(mysql_error());

Ich suche in der ersten Ausgabe direkt nach dem Suchbegriff und anschließend gebe ich ähnliche Begriffe mit der o.g. Abfrage aus.

Wenn ich nun ein A eingebe, dann werden alle Einträge aus Feld1 und Feld2 gefunden,
die ein A oder a enthalten. So weit so gut. Es wäre nun aber wünschenswert, dass die
Ausgabe alphabetisch sortiert nach dem Anfangsbuchstaben des 1. Feldes ausgegeben wird.

Derzeit ist es so, dass trotz der ORDER BY Klausel auch irgendwo in der Mitte der Ausgabe Einträge mit A am Anfang auftauchen.

Gibt es eine Möglichkeit dieses Problem zu geheben?

Vielen Dank

Gruß
SOA
 
Bist du sicher dass die Einträge in der Mitte auch aus Feld1 kommen und nicht aus Feld2? Sollte eigentlich gehen so wie du das hast :)
 
Ziemlich sicher... Es sind Einträge, die teilweise im Nachhinein erstellt wurden.
Merkwürdig ist auch, dass z.B. Einträge mit Aa nicht am Anfang gelistet werden.

Vielleicht läßt sich die ORDER BY Klausel nicht in verbindung mit LIKE einsetzen.

Über einen Tipp wäre ich dankbar.:confused:
Gruß
SOA
 
Bin mir nicht sicher, aber ich glaube das Distinct sorgt für eine Sortierung, hier scheint das im Konflikt mit dem Order by zu stehen bzw. dessen Sortierung zu übergehen.

Einfacher wäre also, die Abfrage in eine Unterabfrage mit Distinct auszulagern und erst in der Hauptabfrage das Order By anzuwenden.
 
Zurück