gpt4 book ai didi

java - 在 SQLite 3 数据库中查询 URL 字符串

转载 作者:行者123 更新时间:2023-12-01 04:55:36 24 4
gpt4 key购买 nike

我正在编写我的第一个 Android 应用程序,并使用 SQLite 数据库将数据存储在多个表中。我的一个表包含与某个搜索相对应的一堆页面的 URL。

使用数据库中的字符串字段,我可以轻松存储 html(格式为 html://mysite.org/blah/blah.htm 或 *.jpg,具体取决于我正在做什么)。这些 URL 也可以轻松地从数据库中检索。

但是,为了提高效率,我只想解析并添加这些 URL 一次。我希望能够在表中搜索 URL,并且仅在 URL 不存在时才解析并添加它。问题是特殊字符(当然是冒号和句点)会导致问题,因为它们是查询字符。我尝试过使用方括号 ({}),用单引号 (') 将查询中的 URL 括起来,甚至尝试过反斜杠。

我在这里缺少一些可以查询的东西吗:从表中选择 *,其中 url="http://*.htm"?

此外,这是将 URL 存储到数据库的最佳方式吗?我处理的 URL 有时是搜索 URL,其值是从搜索表单中填充的,因此它们中可能包含特殊字符(想想 Craigslist 搜索)?

非常感谢任何方向!

最佳答案

阅读documentation of the LIKE operator ;您的查询应如下所示:

SELECT * FROM MyTable WHERE url LIKE 'http://%.htm'

此外,您的搜索字符串可能包含 %_ 字符,因此您应该使用 ESCAPE 子句。

为了确保在构建 SQL 命令时不会遇到像 ' 这样的特殊字符,请使用参数:

String searchPattern = "http://%.htm%";
Cursor c = db.rawQuery("SELECT * FROM MyTable WHERE url LIKE ?",
new String[] { searchPattern });

关于java - 在 SQLite 3 数据库中查询 URL 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14262269/

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