2013-01-10 27 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 });