Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL заявка - сравнете номерата на версиите

Благодаря за съветите @symcbean и @gordon-linoff, моята последна заявка изглежда така:

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'));

Това позволява всеки компонент да бъде с дължина до 10 цифри.

Той трансформира това:

X.XX.XXX > 2.1.27

към това:

'000000000X00000000XX0000000XXX' > '000000000200000000010000000027'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql подреждане по, null първо и DESC след

  2. SQL изявление за избор на дублиращи се записи, появяващи се повече от 2 пъти

  3. Подготвеният израз не работи със заявки за ALTER таблица

  4. Свързване към SQL с помощта на група By и подреждане по брой

  5. Символи с ударение в таблицата на mySQL