我想用这个:
return mDb.query(DATABASE_TABLE, new String[] { KEY_ROWID,
KEY_LEVEL }, KEY_LEVEL + ">= 3 AND " + KEY_LEVEL + " < 5", null, null, null, null);
但不是 5 我希望它检查它发现大于或等于 3 的下一列。
因此,当我输入 5 时,我希望它检查第 3 列中是否大于或等于 5,但小于下一列第 4 列中的值。
我想用这个:
return mDb.query(DATABASE_TABLE, new String[] { KEY_ROWID,
KEY_LEVEL }, KEY_LEVEL + ">= 3 AND " + KEY_LEVEL + " < 5", null, null, null, null);
但不是 5 我希望它检查它发现大于或等于 3 的下一列。
因此,当我输入 5 时,我希望它检查第 3 列中是否大于或等于 5,但小于下一列第 4 列中的值。
只需这样做:
String[] selectionArgs = { "5", "5" };
String[] columns = { KEY_ROWID, KEY_COLUMN3, KEY_COLUMN4 };
String selection = "KEY_COLUMN3 >= ? AND KEY_COLUMN4 < ?";
return mDb.query(DATABASE_TABLE, columns, selection, selectionArgs, null, null, null);
对我来说,像@buzeeg 提供的字符串格式的数字是行不通的。
问题:我的任务是执行UPDATE
,在我的情况下它不应该成功,但正如您可能猜到的,当我们1
用作查询 arg 时,'1'>2
意味着true
:
UPDATE table SET field = 1 WHERE ? > 2
解决方案: CAST
帮我解决了:
SELECT * FROM smth WHERE CAST(? as integer) > 2