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

Sắp xếp theo thứ tự bảng chữ cái MySQL nâng cao với tiền tố?

Bạn có thể làm điều này:

ORDER BY IF(SUBSTRING(name, 1, 14) = 'University of ', SUBSTRING(name, 15), name)

Có thể là một ý kiến ​​hay khi tạo một chế độ xem trên bảng này, chiếu thêm một name_value cột được đặt thành IF() biểu thức trên. Sau đó, bạn có thể sắp xếp theo cột này và chọn nó mà không cần phải kiểm tra các truy vấn của mình với IF() .

Chế độ xem ví dụ, giả sử rằng tên trường đại học được lưu trữ trong cột name :

CREATE VIEW Universities AS
    SELECT
        list_universities.*,
        IF(SUBSTRING(name, 1, 14) = 'University of ',
           SUBSTRING(name, 15),
           name) AS name_value
    FROM list_universities;

Sau đó, bạn có thể chọn từ Universities giống như cách bạn làm từ list_universities , ngoại trừ nó sẽ có thêm name_value mà bạn có thể chọn hoặc sắp xếp theo thứ tự, hoặc bất cứ thứ gì.

Lưu ý rằng cách tiếp cận này (cũng như ORDER BY IF(...) ) sẽ không thể sử dụng bất kỳ chỉ mục nào trên name để cải thiện hiệu suất của loại.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi ngày từ yyyy-mm-dd sang dd month_name năm

  2. Giao điểm hình học MySQL tạo ra kết quả không giao nhau

  3. Làm thế nào để cập nhật một trang web mà không cần tải lại trang web bằng AJAX?

  4. Nhập tệp nén trong Mysql bằng CMD

  5. Cách theo dõi các chỉ số HAProxy với ClusterControl