簡體   English   中英

Android SqLite:選擇其他數據庫表中存在值的行

[英]Android SqLite: Select Rows Where Values Exists in Another Database Table

我的應用程序中有兩個 sqlite數據庫。 如果特定列的值存在於另一個數據庫的表中,我想從表中選擇所有行。

這就是我所擁有的:

// Code to retrieve the string of items
Cursor cr = dbA.rawQuery("SELECT GROUP_CONCAT(Code, ',') FROM Favourites",
                null);
cr.moveToFirst();     
String Codes = cr.getString(0);   // Returns "A, B, D, S"

// Code to return a table where the rows are in the string
cr = dbB.rawQuery("SELECT * FROM Favourites WHERE Code IN ('" + Codes + "')",
                null);
return cr;

這會導致錯誤,因為代碼變量中的每個值都沒有引號。 變量是“A,B,D,S”,它應該是“'A','B','D','S'”。

問題是:我是否必須在字符串中的每個項目周圍手動添加撇號,或者是否有其他方法可以使用光標或其他方式來執行此操作,感覺就像我采取了長篇大論的方法。

我會用

String Codes = "'" + cr.getString(0).replace(", ","','") + "'";

SQL撇號'被轉義為''所以你可以寫:

SELECT GROUP_CONCAT('''' || Code || '''', ',')

''''是撇號和||的轉義撇號 連接兩個字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM