我想用数组
查询sqlite数据库示例:
我有以下情况:
String[] Group = new String[] {"001", "002", "003"}
检查我是否使用:
rawQuery ("Select * from Article Where group = '" + Group + "');
它不起作用。我的问题是我可以采用哪种其他方式处理它?</ p>
答案 0 :(得分:2)
免责声明:在使用此答案之前,您需要确保您的阵列中的数据是安全的。如果没有,您将需要对其进行清理以避免SQL注入。
我不确定rawQuery
是否支持数组,我找不到任何示例。
我会通过String操作自己构建查询。您需要浏览String[]
并使用以下格式构建列表:
expression IN ('value', 'value', ...);
带引号的因为我们正在处理字符串
所以我会这样做:
String[] group = new String[] { "001", "002", "003" };
StringBuilder sb = new StringBuilder();
for (String s : group) {
sb.append("'").append(s).append("',");
}
sb.deleteCharAt(sb.length() - 1); // removes the last comma, we don't want it
String query = "SELECT * FROM Article WHERE group IN (" + sb.toString() + ");";
System.out.print(query);
输出
SELECT * FROM Article WHERE group IN ('001','002','003');
然后
rawQuery(query);