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

MYSQL chọn một đoạn của chuỗi và sắp xếp theo đoạn đó

Tôi khuyên bạn nên xem Hàm chuỗi MySQL và cụ thể hơn là SUBSTRING_INDEX hàm số. Lý do tôi đề xuất cái này thay vì SUBSTRING là bởi vì số trước hoặc sau dấu gạch chéo có thể nhiều hơn một số duy nhất, điều này sẽ làm cho độ dài của phần đầu tiên và / hoặc phần thứ hai khác nhau.

Ví dụ:

SELECT   `info`,
         SUBSTRING_INDEX(`info`, '/', 1) AS `first_part`,
         SUBSTRING_INDEX(`info`, '/', -1) AS `second_part`
FROM     `table`
ORDER BY `first_part` ASC,
         `second_part` ASC;

Kết quả:

Ví dụ bổ sung

Trong ví dụ này, tôi đang sử dụng CAST để chuyển phần thứ hai thành một số nguyên không dấu chỉ trong trường hợp nó chứa các ký tự bổ sung như ký hiệu hoặc chữ cái. Nói cách khác, phần thứ hai của "web-4/15." sẽ là "15" và phần thứ hai của "web-4/15 ****" cũng sẽ là "15".

SELECT   `info`,
          SUBSTRING_INDEX(`info`, '/', 1) AS `first_part`,
          CAST(SUBSTRING_INDEX(`info`, '/', -1) AS UNSIGNED) `second_part`
FROM     `table`
ORDER BY `first_part` ASC,
         `second_part` ASC;


  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ể đưa ra các câu lệnh thao tác dữ liệu với executeQuery ()

  2. mySQL regex trong mệnh đề where

  3. Thủ tục lưu trữ đệ quy Mysql ... Đã đạt đến giới hạn 0 ... không thể thay đổi biến max_sp_recursion_depth

  4. Chỉ so sánh ngày và tháng với trường ngày trong mysql

  5. Chỉ mục thứ hai (hoặc thứ ba) của MySQL trong chuỗi