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

Làm thế nào để sắp xếp kết quả MySQL với các ký tự đầu tiên, ký hiệu sau cùng?

Điều này sẽ đặt tất cả các nghệ sĩ có tên bắt đầu bằng một chữ cái trong a-z trước những tên không:

SELECT DISTINCT artist
FROM songs
ORDER BY artist REGEXP '^[a-z]' DESC, artist

Xem nó hoạt động trực tuyến: sqlfiddle

Nhưng bạn có thể thích lưu trữ cột thứ hai với tên đơn giản hơn để bạn có thể đặt chúng theo thứ tự có ý nghĩa hơn:

artists

artist            | simplified_name
------------------------------------
&i                | i
+NURSE            | nurse
2007excalibur2007 | excalibur

Các giá trị cho simplified_name không thể dễ dàng tạo trong MySQL, vì vậy bạn có thể muốn sử dụng ngôn ngữ lập trình mục đích chung để lấy ra tất cả các nghệ sĩ, chuyển đổi chúng thành tên đơn giản, sau đó điền kết quả vào cơ sở dữ liệu.

Sau khi hoàn tất, bạn có thể sử dụng truy vấn này:

SELECT DISTINCT artist
FROM artists
ORDER BY simplified_name


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách lưu trữ giá trị trống dưới dạng Trường số nguyên

  2. MySQL Workbench giảm kết nối khi không hoạt động

  3. Tìm kiếm không phân biệt dấu phụ trong MySQL (dấu tiếng Tây Ban Nha)

  4. Sử dụng Passport với Sequelize và MySQL

  5. Buộc MATCH chuỗi chính xác cho các câu lệnh chuẩn bị PDO