sql >> Database >  >> RDS >> Mysql

MySQL-query - versienummers vergelijken

Bedankt voor de tips @symcbean en @gordon-linoff, mijn laatste vraag ziet er als volgt uit:

SELECT *
FROM versions WHERE CONCAT(
        LPAD(SUBSTRING_INDEX(SUBSTRING_INDEX(version_number, '.', 1), '.', -1), 10, '0'),
        LPAD(SUBSTRING_INDEX(SUBSTRING_INDEX(version_number, '.', 2), '.', -1), 10, '0'),
        LPAD(SUBSTRING_INDEX(SUBSTRING_INDEX(version_number, '.', 3), '.', -1), 10, '0') 
       ) > CONCAT(LPAD(2,10,'0'), LPAD(1,10,'0'), LPAD(27,10,'0'));

Hierdoor kan elk onderdeel maximaal 10 cijfers lang zijn.

Het transformeert dit:

X.XX.XXX > 2.1.27

naar dit:

'000000000X00000000XX0000000XXX' > '000000000200000000010000000027'


  1. Meerdere COUNT() voor meerdere voorwaarden in één query (MySQL)

  2. Nodejs express en belooft niet te doen wat ik verwacht

  3. Verschil tussen deze twee benaderingen van samenvoegingstafels?

  4. Fix "Rekenkundige overloopfout bij het converteren van IDENTITEIT naar gegevenstype ..." in SQL Server