繁体   English   中英

MySQL & Python select 最后对应的行而不是第一行

[英]MySQL & Python select last corresponding row instead of first

我有一个快速的问题。 我想统计一个用户登录系统的次数。 为此,我在结果的第三部分加了 1。 唯一的问题是每次用户登录时,代码都会获取第一个对应的行。 因此导致 login_num 始终为 2,因为第一个对应行始终包含 1。

在 Stackoverflow 上,我搜索了几种解决方案。 所以我在提取语法的末尾想出了 DESC 。 然而,在我尝试过的每一个实例中,我总是以返回错误告终。 有谁知道为什么会这样?

Python 代码:

cursor.execute("Select rfid_uid, name, login_num FROM users rfid_uid="+str(id) + "ORDER BY id DESC")
result = cursor.fetchone()

if cursor.rowcount >= 1:
  print("Welkom " + result[1])
  print(result)
  result = (result[0], result[1], result[2] + 1)
  sql_insert = "INSERT INTO users (rfid_uid, name, login_num) VALUES (%s, %s, %s)"
  cursor.execute(sql_insert, (result))
  db.commit()

似乎您的 SQL 语句引用了表“用户”。 我想它确实包含有关一般用户的信息(每个用户一行),而不是用户登录信息。

如果您在某个表中注册了每个单独的用户登录事件,我会让数据库进行计数。 是这样的:

SELECT COUNT(*) FROM user_logins WHERE rfid_uid='user_id';

你应该得到一行,你的答案是 integer。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM