[英]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.