Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mensimulasikan grup penangkapan regex di mysql

Setelah beberapa percobaan dan kesalahan saya datang dengan permintaan berikut yang melakukan apa yang saya butuhkan. Pada dasarnya saya memisahkan nomor dari ujung string dan kemudian menghapus banyak karakter sebelum memisahkan nomor berikutnya. Kolom version1 terbatas pada angka positif 2 digit, tetapi itu adalah batasan yang dapat saya jalani dalam kasus saya.

SELECT
    IF(CAST(RIGHT(SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -3)) - 1), '.', -1),2) AS DECIMAL) > 0, 
        CAST(RIGHT(SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -3)) - 1), '.', -1),2) AS DECIMAL), 
        CAST(RIGHT(SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -3)) - 1), '.', -1),1) AS DECIMAL)) AS version1,
    SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -2)) - 1), '.', -1) as version2,
    SUBSTRING_INDEX(LEFT(version,CHAR_LENGTH(version) - CHAR_LENGTH(SUBSTRING_INDEX(version, '.', -1)) - 1), '.', -1) as version3,
    SUBSTRING_INDEX(version, '.', -1) as version4
FROM Version
HAVING version1 >= 5
;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah prosedur/fungsi tersimpan mengembalikan tabel?

  2. Hasil ini adalah kumpulan hasil hanya maju, memanggil rewind() setelah bergerak maju tidak didukung - Zend

  3. Bagaimana cara mengunci database mysql secara eksklusif?

  4. Menggunakan PHP &MySQL untuk mengisi dropdown

  5. Cara Menghapus Spasi Dari String di MySQL