Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 如何比较两个列表<;类别>;从sqlite得到什么?_Android_Sqlite_Android Sqlite - Fatal编程技术网

Android 如何比较两个列表<;类别>;从sqlite得到什么?

Android 如何比较两个列表<;类别>;从sqlite得到什么?,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,假设我有一个名为Api的表,如下所示: id | flag | audit 1 | 1 | 12 2 | 1 | 12 3 | 0 | 12 4 | 1 | 1234 5 | 1 | 1234 6 | 1 | 1234 使用此代码,我可以计算audit列: //DBHelper public List<Contact> getaudit(){ List<Contact> contactList =

假设我有一个名为Api的表,如下所示:

id | flag | audit
1  |   1  |   12
2  |   1  |   12
3  |   0  |   12
4  |   1  |  1234
5  |   1  |  1234
6  |   1  |  1234
使用此代码,我可以计算
audit
列:

//DBHelper
public List<Contact> getaudit(){
    List<Contact> contactList = new ArrayList<>();
    String selectQuery = "select audit, count(audit) FROM Api group by audit";

    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    if (cursor.moveToFirst()) {
        do {
            Contact contact = new Contact();
            contact.setName((cursor.getString(0)));
            contact.setAudit(cursor.getString(1));
            contactList.add(contact);
        } while (cursor.moveToNext());
    }
    return contactList;
}

//MainActivity.java

List<Contact> contacts = db.getaudit();
for (Contact cn : contacts) {
    String log = "Audit Name "+cn.getName()+" ,Counting " + cn.getAudit();
    // Writing Contacts to log
    Log.d("Name: ", log);
}
我将使用相同的代码通过
groupbyaudit
获取标志计数,因此我有2个列表,但我不知道如何使用
if语句和2个列表

问题是:

我想比较一下,如果标志的计数
1
与通过
group by
query进行的审核相同,日志猫会告诉我
相同

比如:

有什么办法吗?
请引导我。

试试这个:

SELECT Audit, Count(Audit) AS AuditCount, Sum(Flag) AS FlagTotal FROM API  GROUP BY Audit
它会回来的

┌───────┬────────────┬───────────┐  
│ Audit │ AuditCount │ FlagTotal │  
├───────┼────────────┼───────────┤  
│ 12    │     3      │     2     │  
│ 1234  │     3      │     3     │  
└───────┴────────────┴───────────┘  

现在,您可以将AuditCount与同一行上的FlagTotal进行比较。

代码可以按audit对flag进行计数,但是如何按我的要求添加
if语句
?检索记录集后,可以通过代码(Java)进行添加。我不明白您的意思,您能更清楚地解释一下吗,先生?通过扫描光标,可以检查下一个值是否等于已检查的值。在本例中,3不等于2。因此,您不会得到“相同!”的输出。我想我们没有理解,先生,在我的例子中,我有3个
countofaudit
但是
2个countofflag=1
所以什么都不做,但是第二个
countofaudit
等于
countofflag=1
如果使用if语法,它必须是
if(auditcount!=flagcount){什么都不做}
SELECT Audit, Count(Audit) AS AuditCount, Sum(Flag) AS FlagTotal FROM API  GROUP BY Audit
┌───────┬────────────┬───────────┐  
│ Audit │ AuditCount │ FlagTotal │  
├───────┼────────────┼───────────┤  
│ 12    │     3      │     2     │  
│ 1234  │     3      │     3     │  
└───────┴────────────┴───────────┘