Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Sortir Alami SQL ORDER BY

Ini akan melakukannya:

SELECT value
FROM Table1
ORDER BY value REGEXP '^[A-Za-z]+$'
        ,CAST(value as SIGNED INTEGER)
        ,CAST(REPLACE(value,'-','')AS SIGNED INTEGER)
        ,value

4 level the ORDER BY :

  1. REGEXP menetapkan setiap garis alfa a 1 dan non-alfa a 0
  2. SIGNED INT Urutkan semua angka berdasarkan bagian sebelum tanda hubung.
  3. SIGNED INT setelah menghapus tanda hubung, urutkan item mana pun dengan nilai yang sama sebelum tanda hubung berdasarkan bagian setelah tanda hubung. Berpotensi bisa menggantikan nomor 2, tetapi tidak ingin memperlakukan 90-1 sama dengan 9-01 jika kasusnya muncul.
  4. Mengurutkan huruf menurut abjad.

Demo:SQL Fiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memasukkan data menggunakan mysqli

  2. Mengambil baris tunggal, kolom tunggal dengan PDO

  3. mysql GROUP_CONCAT duplikat

  4. Sisipan Bersyarat MySQL

  5. Bagaimana cara kerja Hibernate Batch insert?