gpt4 book ai didi

android - SELECT .. WHERE ... IN 在 Android 上使用 rawQuery

转载 作者:搜寻专家 更新时间:2023-11-01 09:28:35 24 4
gpt4 key购买 nike

我想用数组查询sqlite数据库

示例:

我有以下情况:

String[] Group = new String[] {"001", "002", "003"}

检查我是否使用:

rawQuery ("Select * from Article Where group = '" + Group + "');

它不起作用。我的问题是我可以用哪种其他方式处理它?<​​/p>

最佳答案

免责声明:在使用此答案之前,您需要确定您的阵列中的数据是安全的。如果不是,您将需要对其进行清理以避免 SQL 注入(inject)。

我不确定 rawQuery 是否支持数组,我找不到任何示例。我会通过字符串操作自己构建查询。您需要遍历 String[] 并使用以下格式构建列表:

expression IN ('value', 'value', ...);

用引号因为我们正在处理字符串

See SELECT IN doc here

所以我会这样做:

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);

关于android - SELECT .. WHERE ... IN 在 Android 上使用 rawQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49133090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com