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;