2013-02-22 34 views
0

我使用FTS3,以獲得從數據庫的內容,我需要用前綴字符串得到(內容只與字符串開始)。但是當我使用MATCH時,它就像Contains一樣。SQLilte前綴字符串搜索使用匹配

這裏例如:

NOW: 輸入:123 OUTPUT:123ABC 123aaa AAA123

我想: 輸入:123 OUTPUT:123ABC 123aaa

這裏我的代碼:

db.rawQuery("SELECT * FROM " + SQLConstants.TABLE_NAME + " WHERE " + SQLConstants.TABLE_NAME + " MATCH '" + input + "*' ORDER BY " + CODE 
     + " ASC;", null); 
+0

爲我工作。你的數據是否真的包含「123aaa」?沒有其他人物嗎? – 2013-02-22 10:16:32

回答

4

對於像您這樣的目標通常使用LIKE子句。

LIKE運算符在WHERE子句中用於在列中搜索指定的 模式。

String value = "something"; 

說明:

like value + "%"; --> return everything that starts with value and behind it can be anything 
like % + value; --> return everything that ends with value and before it can be anything 
% + like value + "%"; --> return everything that contains value and before and behind it can be anything 

在你的情況,你首先需要的情況下如此:

db.rawQuery("SELECT * FROM " + SQLConstants.TABLE_NAME 
     + " WHERE " + SQLConstants.COLUMN_NAME + " like ? 
      ORDER BY " + CODE + " ASC", new String[] {input + "%"}); 

現在它將會作品。

+0

什麼是CODE應該是在這個字符串? – 2014-02-16 20:47:57

0

使用LIKE與%代替匹配*