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

Urutan numerik saat mengembalikan hasil dari MySQL

Ini adalah masalah dengan desain database Anda. Nomor topik harus disimpan sebagai bilangan bulat. Jika Anda tidak dapat mengubah desain, coba kueri ini sebagai gantinya:

SELECT title
FROM table1
ORDER BY CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(title, ' ', 2), ' ', -1)
              AS UNSIGNED);

Hasil:

'topic 1 foo'
'topic 2 bar'
'topic 10 baz'

Data pengujian:

DROP TABLE IF EXISTS table1;
CREATE TABLE table1 (title VARCHAR(100) NOT NULL);
INSERT INTO table1 (title) VALUES
('topic 1 foo'),
('topic 2 bar'),
('topic 10 baz');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL DROP DATABASE

  2. cara memeriksa tabel kustom wordpress kosong atau tidak

  3. Konversi/enkode string menjadi angka

  4. PHP/MYSQL Bergabung dengan beberapa tabel

  5. MySQL untuk memilih nilai maksimal antara waktu aktif dan nonaktif ditambah 3 detik