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

pesanan mysql dengan serikat sepertinya tidak berfungsi

Dari MySQL dokumentasi :

Pada dasarnya satu-satunya waktu ORDER dalam serikat akan berguna jika Anda menggunakan LIMIT juga.

Jadi jika Anda bertanya seperti ini:

(SELECT * FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%only three doors%" OR `joke` LIKE "%only three doors%") ORDER BY `ups` DESC,`downs` ASC LIMIT 10)
UNION ...

Kemudian Anda akan melihat sepuluh catatan pertama yang akan dikembalikan berdasarkan urutan itu, tetapi tidak harus ditampilkan secara berurutan.

PERBARUI:

Coba ini -

(SELECT *, 1 as ob FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%only three doors%" OR `joke` LIKE "%only three doors%") )
UNION
(SELECT *, 2 as ob FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%only%" OR `joke` LIKE "%only%") )
UNION
(SELECT *, 3 as ob FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%three%" OR `joke` LIKE "%three%") )
UNION
(SELECT *, 4 as ob FROM `jokes` WHERE `flags` < 5 AND (`title` LIKE "%doors%" OR `joke` LIKE "%doors%"))
 ORDER BY `ob`, `ups` DESC,`downs` ASC LIMIT 0, 30


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. hapus semua dari tabel

  2. Permintaan MySQL dengan pernyataan bersyarat?

  3. mySQL Mengembalikan 5 teratas dari setiap kategori

  4. Ada yang salah dengan Hibernate DB connection pooler c3p0

  5. Menghubungkan MySQL dari JSP