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 क्लॉज जोड़ने की आवश्यकता होगी, जिसे आप सॉर्ट करना चाहते हैं, और आपको उन स्थितियों के लिए ELSE क्लॉज की आवश्यकता हो सकती है या जोड़ना चाह सकते हैं जहां:ऑर्डर बाइंड वेरिएबल किसी से मेल नहीं खाता है। आपके मानक मामले।

बाइंड वेरिएबल्स पर प्रतिबंध जहां क्लॉज और प्रोजेक्शन (चयन सूची) के लिए भी सही है। बाइंड वेरिएबल के आपके उदाहरणों में या तो स्ट्रिंग या इंट के लिए क्रमशः:ऑर्डर और :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. MySQL में दो तिथियों के बीच अंतर

  2. php MySql कनेक्टिविटी त्रुटि

  3. रिक्त स्थान और लाइन ब्रेक के साथ MySQL डेटाबेस से गूंजें?

  4. PHP mySQL simpleHTMLDOM का उपयोग करके डेटा सम्मिलित करते समय किसी गैर-ऑब्जेक्ट पर किसी सदस्य फ़ंक्शन को ढूंढें() पर कॉल करें

  5. SQL में दिनांक सीमा प्रतिच्छेदन