Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Sắp xếp bản ghi chứa ký tự đặc biệt như '2321/78/54-6' trong MySQL

Để sắp xếp, hãy sử dụng ORDER BY SUBSTRING(). Hãy cùng tạo một bảng trước:

mysql> CREATE TABLE DemoTable (
    -> Value VARCHAR(40)
    -> ); Query OK, 0 rows affected (0.59 sec)

Chèn một số bản ghi vào bảng bằng lệnh INSERT:

mysql> INSERT INTO DemoTable VALUES('2321/78/54-6'); Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable VALUES('2321/78/54-8'); Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable VALUES('2321/78/54-5'); Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable VALUES('2321/78/54-9'); Query OK, 1 row affected (0.21 sec)

Hiển thị tất cả bản ghi từ bảng bằng lệnh SELECT:

mysql> SELECT * FROM DemoTable;

Kết quả sẽ như sau:

+--------------+
| Value        |
+--------------+
| 2321/78/54-6 |
| 2321/78/54-8 |
| 2321/78/54-5 |
| 2321/78/54-9 |
+--------------+
4 rows in set (0.00 sec)

Dưới đây là truy vấn để sắp xếp các bản ghi có ký tự đặc biệt:

mysql> SELECT * FROM DemoTable
    -> WHERE VALUE LIKE '2321/78/54%'
    -> ORDER BY SUBSTRING(Value FROM 1 FOR 10), CAST(SUBSTRING(Value FROM 11) AS DECIMAL);

Kết quả sẽ như sau:

+--------------+
| Value        |
+--------------+
| 2321/78/54-9 |
| 2321/78/54-8 |
| 2321/78/54-6 |
| 2321/78/54-5 |
+--------------+
4 rows in set (0.05 sec)