SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

आईडी का उपयोग करके एकाधिक पंक्तियां हटाएं?

जब आप एक स्ट्रिंग को whereArgs . के रूप में देते हैं , एक एकल स्ट्रिंग SQL कमांड में समाप्त होती है, जैसे कि आपने यह लिखा था:

... WHERE _id IN ('1,2,42')

यह प्रत्येक _id . की तुलना करेगा मान '1,2,42' . के विरुद्ध मान , जो निश्चित रूप से काम नहीं करता है।

यदि आप तीन पैरामीटर मार्करों का उपयोग करते हैं और whereArgs . में तीन स्ट्रिंग देते हैं सरणी, आप तीन स्ट्रिंग्स के साथ समाप्त होंगे, जैसे:

... WHERE _id in ('1','2','42')

यह तभी काम करता है जब _id कॉलम में पूर्णांक एफ़िनिटी है, जो पूर्णांक प्राथमिक कुंजी के रूप में घोषित कॉलम के लिए सही है, लेकिन सामान्य स्थिति में नहीं।

एंड्रॉइड डेटाबेस एपीआई क्वेरी पैरामीटर को स्ट्रिंग के अलावा किसी भी प्रकार की अनुमति नहीं देता है। पूर्णांक का उपयोग करते समय, आपको उन्हें सीधे सम्मिलित करना चाहिए (जैसा कि ianhanniballake's answer में):

String whereClause = getIdColumn() + " IN (" + TextUtils.join(",", ids) + ")";


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLite सीमा

  2. SQLite में Strftime () फ़ंक्शन कैसे काम करता है

  3. पता लगाएँ कि क्या किसी मान में SQLite में कम से कम एक संख्यात्मक अंक है

  4. ऐसा कोई कॉलम स्क्लाइट अपवाद नहीं

  5. SQLite के साथ मौजूदा डेटा को कैसे अपडेट करें