2011-09-13 12 views
6

मैं एंड्रॉइड में एक रेस्तरां मेनू ऐप विकसित कर रहा हूं। तालिका में एक कॉलम से अलग मूल्यों का चयन कैसे करें?

श्रेणी स्तंभ में इस तरह के शाकाहारी के रूप में आइटम की श्रेणी से पता चलता

  • आईडी (प्राथमिक कुंजी)
  • श्रेणी
  • आइटम नाम,: मेरी एप्लिकेशन एक डेटाबेस तालिका जो निम्न स्तंभ है है गैर शाकाहारी, स्नैक्स इत्यादि। इसमें डुप्लिकेट मान हैं और मैं इस कॉलम से केवल विशिष्ट मान चुनना चाहता हूं। मैं निम्नलिखित की कोशिश की है, लेकिन यह काम नहीं कर रहा है, तो किसी को भी एक समाधान प्रदान कर सकते हैं:

    String query = "SELECT DISTINCT category FROM todo"; 
    
    Cursor cursor = database.rawQuery(query,null); 
    if (cursor != null) { 
        cursor.moveToFirst(); 
    } 
    
    return cursor; 
    
+0

क्या आपको कोई त्रुटि मिल रही है? – diagonalbatman

+0

मुझे कोई स्क्लाइट त्रुटियां नहीं मिल रही हैं, लेकिन ऐप चलना बंद कर देता है, डीबगर त्रुटि स्रोत नहीं मिला है। निश्चित रूप से मैं ऐप – sagar

+0

में किसी भी लॉगिंग का उपयोग नहीं कर रहा हूं आपको अपने आवेदन को डीबग करने के लिए लॉगकैट का उपयोग करना चाहिए। यह आपको आपकी समस्या के बारे में अधिक जानकारी देगा .. –

उत्तर

6

प्रयास करें:

"SELECT DISTINCT category as _id, category FROM todo" 

यह एक ही स्थिति में मेरे लिए काम किया।

सार्वजनिक कर्सर क्वेरी (बूलियन अलग, स्ट्रिंग तालिका, स्ट्रिंग [:

+2

क्या आप इसका अर्थ समझ सकते हैं? आपको "FROM todo" को "as _id, श्रेणी से todo" के साथ बदलने की आवश्यकता क्यों है? – Greener

+2

वह 4 वोट यूपीएस कैसे प्राप्त कर सकता है? – preetam

11

आप भी इस विशिष्ट क्वेरी-विधि SQLiteDatabase वर्ग कि निर्धारित करने के लिए आप अलग-अलग मान या नहीं चाहता एक बूलियन मान लेता है का उपयोग कर सकते ] स्तंभ, स्ट्रिंग चयन, String [] selectionArgs, स्ट्रिंग GroupBy, स्ट्रिंग होने, स्ट्रिंग orderBy, स्ट्रिंग सीमा)

Link to Android Reference

इस तरह से आप सब पर rawQuery उपयोग करने के लिए नहीं है।

1

यह मैं कैसे अलग बनाने के लिए, यह भी श्रेणियों

// Get Categories 
public Cursor getCategories() { 

    Cursor c = db.rawQuery("SELECT DISTINCT " + KEY_ITEM_CAT + " as " + KEY_ITEM_ID 
      + ", " + KEY_ITEM_CAT + " FROM " + ITEMS_TABLE_NAME, null); 

    if (c != null) { 
     c.moveToFirst(); 
    } 

    return c; 
} 
0

मैं एक ही सवाल लिए खोज रहा था पाने के लिए है, और मैं कुछ जो सबसे आसान तरीका है में समाधान करने के लिए प्रत्यक्ष है मिल गया! यह उत्तर देखें:

https://stackoverflow.com/a/13879436/4072073

संबंधित मुद्दे