Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用字符串值定义查询的参数?_Android_Sqlite - Fatal编程技术网

Android 如何使用字符串值定义查询的参数?

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 <

下面的查询应该只返回数字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 <= "+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);
}