Android 如何使用字符串值定义查询的参数?
下面的查询应该只返回数字0到8。然而,结果是0到87。和88至99未显示。接下来显示的数字是100到799。800至999未显示。我在这里看到了一个模式,如果第一个数字在指定的范围内,它就会返回Android 如何使用字符串值定义查询的参数?,android,sqlite,Android,Sqlite,下面的查询应该只返回数字0到8。然而,结果是0到87。和88至99未显示。接下来显示的数字是100到799。800至999未显示。我在这里看到了一个模式,如果第一个数字在指定的范围内,它就会返回 public Cursor getList(String user) { String zero = "0"; String query = ("SELECT * FROM flavors WHERE inventory >= "+zero+" AND inventory <
public Cursor getList(String user) {
String zero = "0";
String query = ("SELECT * FROM flavors WHERE inventory >= "+zero+" AND inventory <= "+user);
return mDb.rawQuery(query, null);
public Cursor getList(字符串用户){
字符串0=“0”;
字符串查询=(“选择*,其中inventory>=”+zero+“和inventory=“+zero+”和(cast(库存为真实))您可以在之间使用,如下所示:
SELECT * FROM flavors WHERE inventory BETWEEN X AND Y
您无法使用=
或来比较字符串
值。感谢您的回复,这会产生与上述相同的行为。谢谢您,胖!这是正确的答案。将列类型更改为整数,将变量更改为int将返回预期的结果。很高兴知道它可以工作。感谢您接受我的答案。如果看起来是这样的话有用,我希望你也能投弃权票:)如果数字是十进制的,5.5那么我会将列的数据类型更改为float或decimal,然后在查询之前将十进制转换为整数吗?您可以检查这个答案:再次感谢FAT,您非常有帮助。您提供的链接帮助我了解sql查询的工作原理。最后一个方法改为满足我的需要。请参见上面的编辑。
SELECT * FROM flavors WHERE inventory BETWEEN X AND Y
public Cursor getList(int user) {
int zero = 0;
String query = ("SELECT * FROM flavors WHERE inventory >= " + zero + " AND inventory <= " + user);
return mDb.rawQuery(query, null);
}