python - 如何在这些情况下循环 python mysql?
问题描述
我有一个关于 python mysql 查询的问题。Heres的我的程序细节是基于mqtt和mysql数据库的。当程序订阅了带有主题的 msg,然后将插入到 mysql 数据库中。
我使用三个设备 Nodemcu 作为客户端。
订阅的每个主题的每条消息都有相同的周期。这意味着从每个客户端收到 3 次消息。我设置了每个客户端 3 次来发送消息。
所以来自客户的每条消息,我想从 1 到 3 填充 PERIOD 列
cur=db.cursor()
#create table
sql="CREATE TABLE TABEL_ALAT (ID INT AUTO_INCREMENT PRIMARY KEY, NILAI_TRUST FLOAT, NAMA_ALAT VARCHAR (10), PERIODE INT)"
cur.execute(sql)
def on_connect(client, userdata, flags, rc):
client.subscribe("ALAT1")
client.subscribe("ALAT2")
client.subscribe("ALAT3")
#client1
def on_message_alat1(client, userdata, msg):
sql="INSERT INTO TABEL_ALAT(NILAI_TRUST, NAMA_ALAT, PERIODE) VALUES (%s, %s, %s)"
n=1
while n < 4 #looping for increment to fill PERIODE column
val = (float(msg.payload), "ALAT1", n)
n+=1
cur.execute(sql, val)
db.commit()
#client2
def on_message_alat2(client, userdata, msg):
sql="INSERT INTO TABEL_ALAT(NILAI_TRUST, NAMA_ALAT, PERIODE) VALUES (%s, %s, %s)"
n=1
while n < 4
val = (float(msg.payload), "ALAT2", n)
n+=1
cur.execute(sql, val)
db.commit()
#client3
def on_message_alat3(client, userdata, msg):
sql="INSERT INTO TABEL_ALAT(NILAI_TRUST, NAMA_ALAT, PERIODE) VALUES (%s, %s, %s)"
n=1
while n < 4
val = (float(msg.payload), "ALAT3", n)
n+=1
cur.execute(sql, val)
db.commit()
我尝试像这样使用循环表格显示:
---------------------------------
|ID|NILAI_TRUST|NAMA_ALAT|PERIODE|
---------------------------------
|1 | 0.12 | ALAT1 | 3 |
---------------------------------
|2 | 0.34 | ALAT2 | 3 |
---------------------------------
|3 | 0.54 | ALAT3 | 3 |
---------------------------------
|4 | 0.12 | ALAT1 | 3 |
---------------------------------
|5 | 0.34 | ALAT2 | 3 |
---------------------------------
|6 | 0.54 | ALAT3 | 3 |
---------------------------------
|7 | 0.12 | ALAT1 | 3 |
---------------------------------
|8 | 0.34 | ALAT2 | 3 |
---------------------------------
|9 | 0.54 | ALAT3 | 3 |
---------------------------------
但我预计该表将显示如下:
---------------------------------
|ID|NILAI_TRUST|NAMA_ALAT|PERIODE|
---------------------------------
|1 | 0.12 | ALAT1 | 1 |
---------------------------------
|2 | 0.34 | ALAT2 | 1 |
---------------------------------
|3 | 0.54 | ALAT3 | 1 |
---------------------------------
|4 | 0.12 | ALAT1 | 2 |
---------------------------------
|5 | 0.34 | ALAT2 | 2 |
---------------------------------
|6 | 0.54 | ALAT3 | 2 |
---------------------------------
|7 | 0.12 | ALAT1 | 3 |
---------------------------------
|8 | 0.34 | ALAT2 | 3 |
---------------------------------
|9 | 0.54 | ALAT3 | 3 |
---------------------------------
所以我的问题是......我们可以只循环n
每个函数上的变量on_message_alat
还是有另一种替代方式?
因为我想在下一步处理。我需要使用列 PERIOD 来过滤 SQL 查询。
谢谢你。
解决方案
推荐阅读
- typescript - 打字稿 - 默认参数类型“{}”不可分配给
- javascript - 使用 Excel VBA webcrawler 将 Javascript BLOB 从画布下载到 PDF
- html - ng-repeat:动态地为表格背景着色
- javascript - ReasonML 对命令式 vanilla JavaScript 的性能
- html - css 更改类的大小不起作用
- php - 带会话的 PHP 登录验证
- typescript - es6 导入。有没有办法在“泛型”中使用“命名空间”作为“类”?
- docker - Symfony4 / Docker:SQLSTATE [HY000] [2002] 连接被拒绝
- r - R中显示的额外类别
- hangouts-chat - 如何@提及使用 REST API 的机器人?