2011-06-13 16 views
12

मैं एक एंड्रॉइड एप्लिकेशन लिख रहा हूं जो दो अलग-अलग मानदंडों के आधार पर डेटाबेस से डेटा खींचने की कोशिश कर रहा है।एकाधिक शर्तों के साथ एसक्यूएल एंड्रॉइड क्वेरी फॉर्मूलेशन

कसरत और व्यायाम के क्षेत्र डेटाबेस में दोनों तार हैं। मैं केवल उन पंक्तियों के साथ कर्सर वापस करना चाहता हूं जो दोनों मानदंडों को पूरा करते हैं। ओह और मैं भी चाहते हैं यह तिथि क्रम में सॉर्ट किया जाना है ...

public Cursor graphQuery(String exercise, String workout) { 
    Cursor cursor = mDb.query(DATABASE_TABLE, new String [] {KEY_DATE, KEY_REPS,  
     KEY_REPS_FEEL, KEY_WEIGHT, KEY_WEIGHT_FEEL}, "KEY_WORKOUT=" + workout + "AND" + 
     "KEY_EXERCISE=" + exercise, null , null, null, KEY_DATE); 

    return cursor; 
} 

मैं एक नया एंड्रॉयड सांकेतिक शब्दों में बदलनेवाला हूँ और मदद की सराहना करेंगे!

+1

आप 'चयन' स्ट्रिंग में 'कसरत' और 'अभ्यास' उद्धृत करके अपना कोड काम कर सकता है। हालांकि, यह पसंदीदा दृष्टिकोण नहीं है। 'SelectArgs' पैरामीटर का सही तरीके से उपयोग करने के तरीके के बारे में मेरा उत्तर देखें। –

उत्तर

29

उपयोग selection और selectionArgs:

public Cursor graphQuery(String exercise, String workout) { 
    Cursor cursor = mDb.query(DATABASE_TABLE, new String [] {KEY_DATE, KEY_REPS,  
     KEY_REPS_FEEL, KEY_WEIGHT, KEY_WEIGHT_FEEL}, "KEY_WORKOUT = ? AND KEY_EXERCISE = ?", 
     new String[] { workout, exercise }, 
     null, 
     null, 
     KEY_DATE); 

    return cursor; 
} 

सूचना कैसे selectionString वास्तविक मूल्यों और वास्तविक मूल्यों की ? रों inplace है एक String[] के रूप में और selectionArgs पैरामीटर में में पारित कर रहे हैं। SQLite उन ? एस को String[]selectionArgs के मानों के साथ प्रतिस्थापित करेगा।

+0

आह, मैं यह जानने का प्रयास कर रहा था कि इसका उपयोग कैसे करें? मैंने उन पर छोड़ दिया था। प्रकट होता है कि उद्धरणों पर मैं बहुत गलत था। त्वरित प्रतिक्रिया के लिए धन्यवाद! मेरे पास अभी भी पता लगाने के करीब एक बल है लेकिन कम से कम मुझे पता है कि कोड अभी सही है। – easycheese

+0

बहुत बढ़िया, धन्यवाद स्टीव! – Soham

1

लघु जवाब: वहाँ के आसपास स्पेस "और" हैं -> "और":

लांग जवाब: पैरामीटर मार्कर का उपयोग करें - तुम्हारी याद आ रही रिक्त स्थान तुरंत तो देखेंगे:।

Cursor cursor = mDb.query(DATABASE_TABLE, new String [] { KEY_DATE, KEY_REPS,  
     KEY_REPS_FEEL, KEY_WEIGHT, KEY_WEIGHT_FEEL }, "KEY_WORKOUT=? and KEY_EXERCISE=?", new String[] { workout, exercise }, null, null, KEY_DATE); 
संबंधित मुद्दे