我想在列中获取最大值。很多次我能够获得最大值。但很少有人没有回来
下面是使用日志执行的两个示例,其中我什么也没得到和值
无人
-log- query =从产品WHERE price =?
中选择MAX(id)-log- args count = 1
-log- args [0] = 31
cursor=db.rawQuery(query, args);
-log- cursor.getCount()= 1
if(cursor.moveToFirst())
-log-将光标移动到第一行成功
-log- cursor.getString(0)=
-log- cursor.getType(0)= 3
-log- cursor.getColumnName(0)= MAX(id)
获取价值
-log-query =从产品WHERE price =?
中选择MAX(id)-log- args count = 1
-log- args [0] = 31
Cursor cursor=db.rawQuery(query, args);
-log- cursor.getCount()= 1
if(cursor.moveToFirst())
-log-将光标移动到第一行成功
-log- cursor.getString(0)= 3
-log- cursor.getType(0)= 1
-log- cursor.getColumnName(0)= MAX(id)
答案 0 :(得分:0)
使用pricevalue添加单引号,因为price是字符串的类型,因此请将您的查询用作
select MAX(id) from product WHERE price = "'" + pricevalue + "'";
但推荐的解决方案是使用query
代替rawQuery
cursor = db.query("product", new String [] {"MAX(id)"}, "price=?",
new String[] { pricevalue }, null, null, null);
注意: pricevalue 将是价格的价值。
答案 1 :(得分:0)
我怀疑问题是浮点转换问题。尝试将where
子句表达为:
where abs((price + 0) - pricevalue) < 0.005
您可能还会遇到价格问题,例如'$5.00'
,但pricevalue
为'5'
。仅仅引用字符串无济于事。