2013-01-10 29 views
1

我正在写我的第一个Android应用程序,并使用SQLite数据库将数据存储在多个表中。我的其中一张表格中包含一组与特定搜索对应的页面的网址。查询SQLite 3数据库中的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搜索)?

任何方向都非常感谢!

回答

0

阅读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 });