2013-02-11 196 views
0

我想根據開始和結束字符以及字符串的長度進行查詢。假設,在我的數據庫我有你好,如何,萬歲,親愛的。我想從數據庫採取蜂蜜,所以我想進行查詢,如它會發現字符串以「h」開頭,結束於「y」和單詞的長度是5.我寫過一個查詢是不是正確?使用like運算符執行查詢

Cursor c = sqLiteDatabase.rawQuery("select * from " + MYDATABASE_TABLE 
       + " where LENGTH(`" + MYDATABASE_FIELD + "`) = " + len 
       + " and `" + MYDATABASE_FIELD + "` LIKE `" + part1 + "%" 
       + part2 + "`", null); 

回答

1

你應該有情況是這樣的,

SELECT... 
FROM... 
WHERE LENGTH(colName) = 5 AND 
     colName LIKE 'h%s' 
1

第二LIKE運營商是一個字符串,而不是一個表/列名,因此,你不可以反引號引用它。 此外,使用參數完全避免了字符串格式問題:

Cursor c = sqLiteDatabase.rawQuery(
    "SELECT * FROM `" + MYDATABASE_TABLE + "` " + 
     "WHERE LENGTH(`" + MYDATABASE_FIELD + "`) = " + len + " " + 
     "AND `" + MYDATABASE_FIELD + "` LIKE ?", 
    new String[] { part1 + "%" + part2 });