Mysql
 sql >> база данни >  >> RDS >> Mysql

Пълна динамична заявка за база данни за стаи

Не можете да използвате свързващи променливи (параметри) за препратка към колони в клаузата ORDER BY. Можете обаче да използвате променливата за свързване в израз като този:

@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>>

Ще трябва да добавите отделна клауза WHEN към оператора CASE за всяка колона/израз, по който искате да сортирате, и може да се наложи или искате да добавите клауза ELSE за ситуациите, когато променливата за свързване :order не съвпада с никоя от вашите стандартни случаи.

Ограничението върху променливите за свързване също е вярно за клаузата where и проекцията (списък за избор). Променливата за свързване има свои собствени стойности във вашите примери или String или Int за :order и :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. Неизвестна колона в „списък с полета“, когато заместителят на подготвеното изявление е в подзаявка

  2. PHP към MySQL SSL връзки

  3. Изпращате имейл до потребители на yahoo и hotmail?

  4. Кеширане с php файл

  5. Отпечатайте данните в ResultSet заедно с имената на колоните