gpt4 book ai didi

android - 使用带空格的参数在 Android 上进行 SQLite 查询

转载 作者:行者123 更新时间:2023-11-29 18:10:18 28 4
gpt4 key购买 nike

我是 SQLite 和 Android 的新手,所以我可能遗漏了一些明显的东西。

有谁知道一种方法可以将包含空格的参数传递给非平凡的 SQLite 数据库查询,形式为“AAA BBB”

我已经尝试了所有显而易见的事情,例如在参数将被替换为选择字符串的位置周围放置单引号。

实际上尝试过将“AAA BBB”硬编码到选择字符串中,但它仍然不起作用。好吧,它确实在简单的原始查询级别工作,只是不作为更复杂查询的一部分。

我的意思是,似乎没有办法将我想做的查询作为普通的 SELECT 原始查询来做。我已经尝试将子查询提供给原始查询,并且它会执行我希望它执行的所有操作,除非参数有空格。用作原始查询的相同子查询会正确处理带空格的参数(添加单引号时)。

查询使用多个表,因此 db.Query 不是一个选项。

所以现在我正在使用 BuildQueryString 并将其提供给 rawQuery。相同的故事。即使当我将““AAA BBB””字符串直接硬编码到 BuildQueryString 的输入中时也是如此。有没有其他方法我应该使用 BuildQueryString 的结果。

有谁知道如何做到这一点???

最佳答案

这是您要执行的操作的示例:

database.rawQuery("SELECT bar FROM Foo WHERE bar = 'AAA BBB'", null);

如果 SQL 注入(inject)是一种威胁并且您在 String myName 中有“AAA BBB”:

database.rawQuery("SELECT bar FROM Foo WHERE bar = ?", new String[] { myName });

但我不确定“在更复杂的层面上”是什么意思……也许是这样:

database.rawQuery("SELECT bar FROM Foo WHERE bar LIKE ? ORDER BY bar = ?, bar LIKE ?, bar LIKE ?", new String[] { myName, myName, myName + "%", "%" + myName + "%" });

关于android - 使用带空格的参数在 Android 上进行 SQLite 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11089416/

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