簡體   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