Ich möchte das er jeden Feld für sich sortiert.
und was soll da dann rauskommen? das kann nicht gehen. Dann wüsste die Datenbank nicht, an welcher Stelle es den Datensatz nun liefern soll, für goldStar käme er an 10. Stelle für silverStar an 15. und für bronzeStar an 4. Wie würdest du denn dann entscheiden?
Du möchtest vielleicht lieber ein sogenanntes "Ranking" pro Spalte erstellen. Damit bekommst du aber auch nur wieder andere Zahlen, mit denen du dasselbe Problem haben wirst.
Oder du möchtest vielleicht ein gewichtetes "Gesamtranking" (mit sog. tie-breaker) machen. Das ginge, indem du z.b. goldStar die doppelte Wertigkeit (z.b. 6 Punkte) gibst als silverStar (3 Punkte) und die 6fache Wertigkeit von bronzeStar gibst:
ORDER BY (goldStar*6 + silverStar*3 + bronzeStar*1) DESC
Das ist nicht ganz trivial und nur eine von schier Millionen von Möglichkeiten.
Die NULL-Werte bekommst du raus, indem du die Funktion COALESCE(feld, surrogatwert_wenn_null) anwendest.
Cheers, Frank