यह क्वेरी पैरामीटर केवल स्ट्रिंग हो सकते हैं, Android डेटाबेस API में एक भयानक डिज़ाइन त्रुटि है।
दस्तावेज़ीकरण क्या कहता है इसके बावजूद, आपको केवल वास्तविक स्ट्रिंग मानों के लिए पैरामीटर का उपयोग करना चाहिए; पूर्णांक मानों को सीधे SQL स्ट्रिंग में सुरक्षित रूप से एम्बेड किया जा सकता है। (ब्लॉब्स के लिए, आपको एक ऐसे फ़ंक्शन का उपयोग करना चाहिए जो ContentValues
. को स्वीकार करता हो ।)
कृपया ध्यान दें कि जब SQLite गतिशील टाइपिंग का उपयोग करता है, तो विभिन्न प्रकार के मान नहीं करते हैं ज्यादातर मामलों में बराबर की तुलना करें (SELECT 42='42';
रिटर्न 0
)। कुछ मामले हैं जहां SQLite करता है टाइप एफ़िनिटी के कारण मानों को स्वचालित रूप से रूपांतरित करें (आपके मामले में, यह तब होगा जब आपने id
. घोषित किया हो INTEGER
. के रूप में कॉलम ), लेकिन यह उल्टा है, इसलिए इस पर भरोसा नहीं किया जाना चाहिए।