Android - sqlite in子句使用数组中的字符串值?

时间:2015-04-06 09:33:27

标签: android mysql sqlite

我想执行一个sqlite查询,我有String

 String A = "AB-CDFER-GTDOL";
 String[] parts = Pattern.compile("-", Pattern.LITERAL).split(A);

现在我需要在parts中使用query

cursor = sql.rawQuery("SELECT * FROM MyTable WHERE Comment in" + ?????, null);

如何在parts中使用query

例如,我需要("AB","CDFER","GTDOL")

3 个答案:

答案 0 :(得分:0)

我希望这能解决你的问题:

您可以按以下方式拆分字符串:

String A = "AB-CDFER-GTDOL";
 String[] parts = A.split("-");

现在您的parts数组将具有以下值:

parts[0] = "AB";
parts[1] = "CDFER" etc..

同样,您可以根据需要在sql查询中使用这些值。

希望这有帮助。

答案 1 :(得分:0)

您可以使用Android SQLDatabase中的query方法。这是它的文档:http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#query

您可以像下面这样实现它:

 String A = "AB-CDFER-GTDOL";
 String[] parts = A.split("-");
 cursor = sql.query("MyTable", null, "Comment = ?", parts, null, null, null, null);

关于Android中SQL的有用文章:http://hmkcode.com/android-simple-sqlite-database-tutorial/

答案 2 :(得分:0)

您可以在拆分后编译字符串:

         String A = "AB-CDFER-GTDOL";
         String[] parts = Pattern.compile("-", Pattern.LITERAL).split(A);
    // build the params string
    StringBuilder sb = new StringBuilder("");
    for(String param:parts){
    // you can also enclose it in quotes
    sb.append",".append('"').append(param).append('"');
    }
    // remove 1st comma from sb.
    final String params = sb.toString().substr(1);

这里的技巧是将所需的字符串编译为"AB","CDFER","GTDOL"。现在您可以将此字符串作为ONE参数传递。

cursor = sql.rawQuery("SELECT * FROM MyTable WHERE Comment in(?)", new String[]{params});