Vinzenz Mai: Umsetztung einer Versionierung

Beitrag lesen

Hallo,

ganz simpel:

order by major DESC, minor DESC

ggf. bei minor NULL-Werte berücksichtigen. bzw. dort NULL-Werte nicht zulassen, statt dessen 0 verwenden und bei der Ausgabe .0 entfernen.

Bei Verwendung von 0 (statt NULL):

Beispiel (tabelle versionierung):

major | minor
------+------
  1   |   0
  1   |   1
  1   |   2
  1   |  12
  2   |   0
  2   |   1
  2   |   2

und

SELECT  
    -- sorge dafür, dass die Versionen 1 und nicht 1.0 lauten  
    [link:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat@title=CONCAT](major, [link:http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_if@title=IF](minor = 0, '', CONCAT('.', minor))) version  
    -- und gib der berechneten Spalte einen sprechenden Namen: version  
FROM  
    versionierung  
ORDER BY  
    major DESC,  
    minor DESC  

liefert

version
-------
2.2
2.1
2
1.12
1.2
1.1
1

Mit LIMIT kannst Du dies auf die neueste Version eingrenzen (limitieren).

Freundliche Grüße

Vinzenz