2016-04-06 9 views
0

Warum Auswahlargumente nur für die Where-Klausel in RawQuery gelten und nicht zum Beispiel in der from-Klausel?Warum Auswahlargumente nur für die Where-Klausel in RawQuery gelten?

Ich frage das, weil in der "From-Klausel" Sie die gleichen Dinge wie in der "Where-Klausel" haben könnten, zum Beispiel bei der Verwendung von Joins.

SELECT table1.field_x, table2.field_y FROM table1 
LEFT OUTER JOIN table2 ON table1.field_x = table2.field_z AND table2.language =? 
WHERE table1.language=? 

Ich möchte einen Rawquery wie diese machen:

RawQuery("SELECT table1.field_x, table2.field_y FROM table1 
LEFT OUTER JOIN table2 ON table1.field_x = table2.field_z AND table2.language =? 
WHERE table1.language=?", 
new String[] {language, language} 

Es macht keinen semantischen Fehler geben, noch ein Übersetzungsfehler, aber es ist nicht zur Ausführungszeit zu arbeiten.

+0

können Sie den Code posten, den Sie verwenden? Ihr Code scheint mir gut zu sein – Pooya

+1

Bitte erklären Sie, was "es nicht funktioniert" bedeutet für Sie. – laalto

+0

@ laalto, was ich meine ist, dass das Fragezeichen in [table2.language =?] Nicht durch eines der vars in {Sprache, Sprache} ersetzt wird. Es ist kein Fehler, aber ich möchte wissen warum. –

Antwort

-1

Warum nur Auswahl Argumente der where-Klausel in RawQuery und nicht

Auswahl Argumente gelten nicht für rawQuery gelten, gilt es abzufragen.

Einfachste Methode zum Erstellen von RawQuery mit String-Array-Parametern, um ein neues StringBuffer/StringBuilder-Objekt mit Parametern zu erstellen und Strings in SB anzuhängen.

Für rawQuery("select DISTINCT tbl_name from sqlite_master where tbl_name = '" + tableName + "'", null)

+0

Sie können die Variablenbindung mit 'rawQuery()' verwenden. – laalto

Verwandte Themen