Sie möchten Nullen und Leerzeichen zuletzt sortieren und alle Lösungen gelesen haben, die entweder die Coalesce-Funktion oder die If-Spalte in der Reihenfolge verwenden.Sortieren von Nullen zuletzt
Meine Probleme sind nicht von diesen Arbeiten für mich, weil die Spalte, die ich sortiere, dynamisch vom PHP-Skript angegeben wird, das die Abfrage erstellt, und einige meiner Spalten sind in zwei Tabellen in meinem Join.
$sortcol="boat";
$sql= "SELECT fleet,b.boat as boat,owner FROM boats as b
LEFT JOIN owners as o ON b.boat=o.boat
ORDER BY $sortcol";
Dies funktioniert gut, kann ich die Variable $ sortcol und Auflistung meiner Ausgabe funktioniert mit Ausnahme der nulls groß ändern und Zuschnitte an der Spitze sind.
Basierend auf anderen Postings habe ich versucht, diese
$sortcol="boat";
$sql= "SELECT fleet,b.boat as boat,owner FROM boats as b
LEFT JOIN owners as o ON b.boat=o.boat
ORDER BY IF($sortcol is NULL,1,0), $sortcol";
Diese den Fehler wirft "-Spalte Boot in ORDER BY-Klausel ist nicht eindeutig". Offensichtlich will b.boat in der Reihenfolge nach, aber aus Gründen, die ich nicht eingehen werde, ist das problematisch. Es scheint, dass ich jederzeit, wenn ich versuche, eine Funktion in der orderby-Klausel zu verwenden, den Spaltenalias nicht verwenden kann.
Irgendwelche Ideen für eine elegante Lösung?
Interessante sagen Sie, dass, wenn ich b.boat als boatname statt b.boat als Boot verwenden wird es funktionieren ??? – davewhirlwind
Ja, genau. Es sei denn, Sie haben ein anderes Feld namens boatname :-) – LSerni
Das hat funktioniert. – davewhirlwind