轉載:https://blog.csdn.net/JiYiDeShuiJing/article/details/24978559
前言:今天想使用sqlite對於某個表裏面的某個字段包含某些字進行模糊查詢,總是查不出來。原來是sqlite和sql語句有差異。
細節區別於MySql數據庫裏的模糊查詢,Sqlite數據庫裏的模糊查詢在條件語句裏只寫:
" like ? "
還應該注意的是如果用字符串拼接sql語句like前面一定要記得留空格(因爲這個原因我把%都放到填充佔位符的實參裏面了還是不對,差點放棄)
在填充佔位符的實參中才寫:
" %模糊名字%"
sqlite模糊查詢要把"%"放到實參裏面寫。例如:
mSqlDatabase.query(tableName, null, " like ?", new String[] { "%" + new String("模糊名字".getBytes(), "utf-8") + "%" }, null, null, null);
或
mSqlDatabase.query(tableName, null, " like ?", new String[] { "%模糊名字%" }, null, null, null);
【注意】:因爲Android Sqlite數據庫中本身就是採用UTF-8編碼存儲,在取出時若出現亂碼,就通過new String("xxx".getBytes(),"utf-8/gb2312")