Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Pełna dynamiczna kwerenda bazy danych pokoju

Nie można używać zmiennych wiązania (parametrów) do odwoływania się do kolumn w klauzuli ORDER BY. Możesz jednak użyć zmiennej bind w wyrażeniu takim jak:

@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ędziesz musiał dodać osobną klauzulę WHEN do instrukcji CASE dla każdej kolumny/wyrażenia, według których chcesz sortować, i możesz potrzebować lub chcieć dodać klauzulę ELSE w sytuacjach, gdy zmienna :order bind nie pasuje do żadnego z Twoje standardowe przypadki.

Ograniczenie zmiennych wiążących obowiązuje również w przypadku klauzuli WHERE i projekcji (lista wyboru). Zmienna Bind ma swoje własne wartości w twoich przykładach albo String albo Int odpowiednio dla :order i :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. Wyzwalacz Mysql po aktualizacji wstawia się do innej tabeli z warunkiem

  2. zaktualizuj tabelę mySQL za pomocą C#

  3. Tablica hostów bazy danych jest pusta. po wdrożeniu projektu Laravel na AWS Elastic Beanstalk

  4. MySql - oblicz różnicę czasu dla wielu wierszy

  5. Jak dodać nowe wejście w laravel strony rejestru?