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

Cơ sở dữ liệu phòng truy vấn động đầy đủ

Bạn không thể sử dụng biến ràng buộc (tham số) cho các cột tham chiếu trong mệnh đề ORDER BY. Tuy nhiên, bạn có thể sử dụng biến liên kết trong một biểu thức như sau:

@Query("select * from coin ORDER BY
CASE :order
WHEN 'percent_change_24h' THEN percent_change_24h
WHEN 'other_column_name' THEN other_column_name
END asc limit :numberOfCoins")
fun getAllTop(order: String, numberOfCoins: Int): Flowable<List<CoinDB>>

Bạn sẽ cần thêm một mệnh đề WHEN riêng biệt vào câu lệnh CASE cho mỗi cột / biểu thức bạn muốn sắp xếp theo và bạn có thể cần hoặc muốn thêm một mệnh đề ELSE cho các trường hợp mà biến:order bind không khớp với bất kỳ các trường hợp tiêu chuẩn của bạn.

Hạn chế về các biến ràng buộc cũng đúng đối với mệnh đề where và phép chiếu (danh sách chọn). Biến Bind có các giá trị riêng trong ví dụ của bạn, String hoặc Int tương ứng cho:order và:numberOfCoins.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tối ưu hóa truy vấn - mất quá nhiều thời gian và dừng máy chủ

  2. Làm thế nào để chuyển đổi tập tin .db thành tập tin .sql

  3. Cách đặt lại mật khẩu gốc trong MySQL 8.0

  4. PDO ::beginTransaction () có gây ra khóa bảng hoặc hàng cho đến khi PDO ::commit () không?

  5. MySQL - Dấu phân tách hàng nghìn