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

Sử dụng biểu thức boolean theo thứ tự mệnh đề

MySQL không có thực khái niệm về boolean và đơn giản là ánh xạ TRUEFALSE thành các giá trị số 10 một cách hiệu quả.

Trong trường hợp này user_id <> ? sẽ trả về 0 cho phần lớn các hàng trong bảng của bạn và 1 cho các hàng khác. Thứ tự sắp xếp mặc định là ASC , có nghĩa là rất có thể các hàng bạn muốn nằm ở dưới cùng trong bộ kết quả của bạn (0/FALSE đến trước 1/TRUE ). Hãy thử sửa đổi truy vấn của bạn để phù hợp với điều này.

( user_id <> ? ) DESC, rating DESC, title

Giả sử đây thực sự là vấn đề, có thể dễ dàng đạt được khả năng tương thích giữa các cơ sở dữ liệu.

IF(user = ?, 0, 1), rating DESC, title


  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 groupconcat trả về BLOB xxxB / Kib

  2. Tải hình ảnh Laravel lên cơ sở dữ liệu

  3. Định dạng mã MySQL bên trong chuỗi PHP

  4. Sắp xếp thứ tự nối hai bảng không được liên kết

  5. CHÈN SQL ... CHỌN với DATETIME tăng tự động