在 SQLiteDatabase.query() 中使用字串條件時,若未加單引號,SQL 會將字串視為欄位名稱導致語法錯誤或崩潰。
Cursor c = db.query(TABLE, columns, KEY_STATUS + "=available", null, null, null, null);
Cursor c = db.query(TABLE, columns, KEY_STATUS + "='available'", null, null, null, null);
String status = "available";
Cursor c = db.query(TABLE, columns, KEY_STATUS + "=?", new String[]{status}, null, null, null);
所有動態字串條件查詢,特別是使用者輸入內容時,強烈建議使用 selectionArgs。