我有这个简单的sqlite数据库:
WITH tempTable AS
(
SELECT date, ROUND( SUM(size / 1024 / 1024 ) ) AS Size_Used FROM storageTable
group by date
order by date DESC
)
SELECT Size_Used INTO lastRowMinus0Value FROM tempTable
WHERE ROWNUM = lastRowMinus0
UNION ALL
SELECT Size_Used INTO lastRowMinus1Value FROM tempTable
WHERE ROWNUM = lastRowMinus1;
要显示列表中的所有联系人,我按如下方式使用光标:
_id ----- name ----- age ----- phone
01 John 34 111
02 Mary 44 222
03 Anna 53 333
我的意图是仅显示年龄超过40岁的联系人。 我正在寻找并且可以找到使用rawQuery的方法(尽管我还没有设法将其应用到光标),但是我找不到使用sqlite语法db.query的方法,因为我在我的代码中。
正确的方法是什么?
谢谢。
答案 0 :(得分:2)
您需要像这样使用query()
方法的3d和4th参数:
db.query(
TABLE_NAME,
columnas,
"age > ?",
new String[] {String.valueOf(40)},
null, null, CN_AGE+" ASC"
);
3d参数是SQL语句的WHERE
部分(不包含关键字WHERE
),并且可以包含占位符?
,该占位符将被替换为数组中的项目。第四个论点。
因此3d参数中的占位符?
将被"40"
替换,该语句最终将为:
SELECT <columnas> FROM <TABLE_NAME> WHERE age > 30