Frank (no reg): Bestimmte Werte einer Spalte gewichten

Beitrag lesen

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