2011-10-24 11 views
17

Chcę uzyskać dostęp do rekordów z SQLite w Androidzie przy użyciu rawQuery(query,arg). Mam dwie kolumny w bazie danych o nazwie friendsID i drugiej nazwie emailSenderID.Użycie AND i LUB w SQLite

Teraz jeśli wyślę pocztę do mojego przyjaciela emailSenderID -kolumna zapisze mój identyfikator i friendsID -kolumny zapisz identyfikator mojego znajomego. Jeśli otrzymam wiadomość e-mail od tego samego znajomego, wówczas kolumna friendsID zapisze identyfikator znajomego, a emailSenderID -kolumna zapisze identyfikator mojego znajomego.

Teraz, jeśli chcę rekord sprowadzić jak ten

Select * from emailTable where friendsID =fID 
and emailSenderID=fID 
OR emailSenderID=myID 

proszę kierować mi jak AND i OR Operatorzy mogą używać do Android SQLite.

+8

Prawdopodobnie musisz użyć nawiasów '(' i ')', aby poprawnie pogrupować swoje warunki. Proszę rozważyć pracę nad wyjaśnieniem i formatowaniem ... naprawdę trudno to rozszyfrować. –

+0

W czym problem się rozwiązuje? –

+0

@ Till Helge Helwig dziękuję, staram się modyfikować tyle, ile mogę. @ Sean Owen Chcę pobrać dane z SQLite z wieloma AND i OR w tym stanie. . – aftab

Odpowiedz

26

Sądzę, że masz na myśli coś takiego: "Zdobądź wszystkie wpisy z emailTable, gdzie friendsID to fID, a emailSenderID to albo fID, albo myID." W takim przypadku musisz pogrupować go w następujący sposób:

SELECT * FROM emailTable WHERE friendsID=fID AND 
    (emailSenderID=fID OR 
    emailSenderID=myID) 
+0

dzięki temu jest rozwiązany i działa. . – aftab