Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.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
在Sq Lite 3 Python中进行比较_Python_Database_Sqlite_Compare_Local - Fatal编程技术网

在Sq Lite 3 Python中进行比较

在Sq Lite 3 Python中进行比较,python,database,sqlite,compare,local,Python,Database,Sqlite,Compare,Local,我有一个Sq Lite 3数据库,其中包含列ID、名称和时间。 因此,我有最后一行,并使用python将其放置在var last_PERSON中 your_rank = "SELECT usr_name,time FROM rank WHERE ID = (SELECT MAX(ID) FROM rank)" 我还有一个var行,它按时间顺序循环遍历每一行 sql = "SELECT usr_name,time FROM rank ORDER BY time " for row in cu

我有一个Sq Lite 3数据库,其中包含列ID、名称和时间。 因此,我有最后一行,并使用python将其放置在var last_PERSON中

your_rank = "SELECT usr_name,time FROM rank WHERE ID = (SELECT MAX(ID)  FROM rank)"
我还有一个var行,它按时间顺序循环遍历每一行

sql = "SELECT usr_name,time FROM rank ORDER BY time "

for row in cur.execute(sql):
我想比较一下:

您的_排名与按时间排序的行,并获得最后一个人的排名

我试过了

        for row in cur.execute(sql):
        sql_list.append(row)
        if(row is your_rank):
            this_is_your_rank = rank_number
        rank_number += 1
但是我不能使用Sq Lite 3的if语句,我也无法找到任何解决方案来比较它们。谁能给我点一下吗


如果您不能,感谢您花时间阅读。

您想
从时间
或类似的排名中选择count(ID)

在SQL结果上循环查找您想要的内容是很麻烦的,因为您只需要让数据库给出您想要的答案

编辑:

您的第一个查询(将表加入到表本身以获取具有最高ID的用户)可以是:

SELECT MAX(ID),usr_name,time FROM rank
您可以通过以下方式将它们组合为“获取最新用户名、时间和位置”:


python代码没有正确缩进,因此无效。你没有恰当地描述你想要实现的目标。很可能只需要一条SQL语句就可以完成,但不可能知道是哪一条,因为您没有解释要做什么。
SELECT 
    MAX(ID),usr_name,time, (SELECT COUNT(ID)+1 FROM rank WHERE time < r.time) [Pos]
FROM
    rank r
last_user = cursor.execute('select max(id),usr_name,time from rank').fetchone()

last_user_rank = 1
for row in cursor.execute('select id,usr_name,time from rank order by time asc'):
    if last_user[2] > row[2]:
        last_user_rank += 1
    else:
        break

print last_user, last_user_rank