我有一个关于python-mysql查询的问题。以下是我的程序基于mqtt和mysql数据库的详细信息。当程序用主题订阅msg时,就会插入mysql数据库。你知道吗
我使用了三个设备Nodemcu作为客户端。你知道吗
订阅的每个主题的每条消息都有相同的周期。这意味着从每个客户端接收到的消息是3倍。每个客户端我设置3次发送消息。你知道吗
所以每一条来自客户端的消息,我都要填充从1到3的周期列
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
或者有其他替代方法吗?。你知道吗
因为我想在下一步处理。我需要使用列句点来过滤SQL查询。你知道吗
谢谢你。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐