Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mô phỏng các nhóm bắt regex trong mysql

Sau một số thử nghiệm và sai sót, tôi đã đưa ra truy vấn sau đây để đáp ứng những gì tôi cần. Về cơ bản, tôi tách các số ra khỏi cuối chuỗi và sau đó loại bỏ nhiều ký tự đó trước khi tách số tiếp theo. Cột version1 được giới hạn ở các số dương có 2 chữ số, nhưng đó là hạn chế mà tôi có thể gặp phải trong trường hợp của mình.

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. Không thể tạo bảng trong MySQL vì nó đã tồn tại

  2. MySql.Data.MySqlClient.MySqlException:Hết thời gian chờ

  3. Mã lỗi MySQL:1175 trong khi CẬP NHẬT trong MySQL Workbench

  4. mySQL - Khóa bảng so với khóa hàng

  5. Làm cách nào để thiết kế Bảng MySql cho Đám mây thẻ?