.rawQuery mehrere ? parameter

Ich versuche, mit den .rawQuery zurück, die den Inhalt einer Spalte in eine SQLite-Datenbank.
Ich habe eine Liste, die verwendet wird, um die Datenbank abzufragen und je nachdem, was angeklickt wird, hängt davon ab, was zurückgegeben wird. Das problem ist, dass das erste Element in der Liste will wieder alle Ergebnisse und die unten es werden nur bestimmte Ergebnisse.

Ich bin mit dem folgenden code:

  public Cursor getTrailByType(String id) {
     String[] args={id};

     return(getReadableDatabase()
          rawQuery("SELECT _id, NAME FROM trail WHERE TYPE_id=? OR ENT=?",
                args));
  }

TYPE_id ist das spezifische Ergebnis zurückgeben (falls ? zwischen 2 und 10) und HNO-Rückgabe alle (wenn ? = 1 ; ich habe das einfach Hinzugefügt, eine zweite Spalte ENT-mit der Nummer 1 in alle Zeilen). Also wenn id 1 gibt es den HNO-Kriterien, aber wenn es zwischen 2 und 10 gibt es die TYPE_id Kriterien.

Das problem ist der zweite ? ist nicht zu Lesen, und eine leere Liste wird erzeugt. Wenn ich substitue der zweite ? für eine ganze Zahl, dann funktioniert er aber nicht füllen Sie die spezifischen Listen richtig.

Kann jeder jeden schlagen, was falsch ist mit dem code?

  • ist ENT eine DB-Spalte?
  • Ja, ENT ist eine DB-Spalte
  • Sie benötigen keine zusätzlichen ENT-Spalte. Siehe Beispiel unten.
  • Wie gesagt, Sie brauchen nicht eine neue Spalte für diese, aber der Grund, warum es nicht funktioniert ist dein args-array nur ein element hat. Zwei ?'s -> zwei Argumente. Persönlich würde ich zwei verschiedene Abfragen, um Dinge zu machen, mehr lesbar.
InformationsquelleAutor faarn | 2011-06-14
Schreibe einen Kommentar