SQLite 查询以获取特定值

Posted

技术标签:

【中文标题】SQLite 查询以获取特定值【英文标题】:SQLite Query to get certain Value 【发布时间】:2015-01-10 08:13:12 【问题描述】:

在我的数据库中,我存储了以下数据:

_id | NumericalEquivalents | ValTo | valFrom | Section
------------------------------------------------------
 1            1.00            100     99          a
 2            1.25            98      96          a
 3            1.75            95      93          a
 .....
 .....
 10           5.00            74      0           a

现在在我的应用程序中,将以编程方式计算成绩,我有以下代码来获取计算成绩的数值等效项:

public float getNumEqui(String sect, float grade)
            

                String q = "SELECT * FROM NumericalEquivalents where Section='"+sect+"' and valTo>="+grade+" and valFrom<="+grade;

                 Cursor cursor = mDb.rawQuery(q, null);
                 if(cursor.moveToFirst())
                    
                     float reset= cursor.getFloat(cursor.getColumnIndex("NumericalEquivalent"));
                        return reset;
                      
                    //return sometotal;

             return -1;

            

我现在的问题是它总是返回 5.00,我想知道我使用的查询是否有问题。任何帮助将不胜感激。

【问题讨论】:

我猜你的成绩是 0 我试过设置不同的等级,结果总是一样。 如果你用'a'部分和90级来测试它,结果会是什么? 结果还是5.0 99的结果是什么? 【参考方案1】:

使用BETWEEN

SELECT * 
FROM NumericalEquivalents  
where Section = 'a' and @grade between ValFrom and ValTo

Demo here

【讨论】:

以上是关于SQLite 查询以获取特定值的主要内容,如果未能解决你的问题,请参考以下文章

在 sqlite 查询中如何获取具有所需值的特定行和列

SQLITE:查询以表格格式获取数据

获取 SQLite 数据库的下一个 AUTO_INCREMENT 值

如何在 sqlite 中查询一个 fts 表以查找一个匹配的列和另一个不匹配特定查询的列?

使用 SQLite 获取存在特定 ID 值的所有表的列表

Python sqlite如何从生成的列表中查询和获取项目?