Hallo,
ich habe ein riesiges Problem.
Na sowas aber auch.
Kurzum: Vergleiche Feld "culture" in einer Abfrage mit dem Wert deiner PHP Variablen und je nach übereinstimmung erzeugst du dafür einen Surrogatwert, z.b. 1 oder 99 oder -1, wenn keine Übereinstimmung, dann bleibts bei 0
Mal schanell in T-SQL (für Microsoft Sql Server) formuliert, @par1 ist dabei ein Platzhalter ... wie das in deiner Umgebung zu handhaben ist, hängt von deiner Datenbank ab. Ebenso ob du eine Unterabfrage brauchst. (Deswegen für diejenigen, die von wegen "nicht optimal" kommen, können sich ihren Kommentar dazu sonstwohin stecken.)
SELECT *
FROM (SELECT Id, Culture,
case when culture = @par then 1 else 0 end as SortierungsHilfe,
Wert
FROM deineTabelle) AS tabelleMitSortierung
ORDER BY tabelleMitSortierung.SortierungsHilfe DESC, tabelleMitSortierung.Id DESC
Das ergibt dann ein solches Zwischenresultat, wenn $nat = 'jp' ist
id | culture | wert | Sortierungshilfe
-------------------------------------------------
1 | de | 37 | 0
2 | en | 12 | 0
3 | en | 19 | 0
4 | jp | 11 | 1
5 | jp | 13 | 1
6 | de | 23 | 0
--------------------------------------------------
Ciao, Frank