首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在SQLite 3数据库中查询URL字符串

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

Stack Overflow用户
提问于 2013-01-11 00:13:16
回答 1查看 1.9K关注 0票数 1

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

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

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

为了能够查询,这里是否遗漏了什么: SELECT * from TABLE WHERE url="http://*.htm“?

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

任何方向都非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2013-01-11 00:26:55

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

代码语言:javascript
运行
复制
SELECT * FROM MyTable WHERE url LIKE 'http://%.htm'

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

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

代码语言:javascript
运行
复制
String searchPattern = "http://%.htm%";
Cursor c = db.rawQuery("SELECT * FROM MyTable WHERE url LIKE ?",
                       new String[] { searchPattern });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14262269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档