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

mysql order by with union dường như không hoạt động

Từ tài liệu của MySQL :

Về cơ bản, lần duy nhất một ORDER trong một liên minh sẽ rất hữu ích nếu bạn đang sử dụng LIMIT nữa.

Vì vậy, nếu bạn truy vấn như thế này:

(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 ...

Sau đó, bạn sẽ thấy mười bản ghi đầu tiên sẽ được trả về dựa trên thứ tự đó, nhưng chúng không nhất thiết phải được hiển thị theo thứ tự.

CẬP NHẬT:

Hãy thử điều này -

(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. Chọn giá trị phổ biến nhất từ ​​quan hệ - Câu lệnh SQL

  2. Cách chạy truy vấn SQL RAW trong PhalconPHP

  3. Làm cách nào để kết nối cơ sở dữ liệu MySql với Firebase?

  4. Làm thế nào để có được bản ghi với giá trị tối đa trong MySQL

  5. Có thể tăng tốc một sum () trong MySQL không?