def show_query1_result(self): # 查询数据 db = pymysql.connect(host='39.99.214.172', user='root', password='Solotion.123', db='jj_tset') cursor = db.cursor() db_sql = """ """ cursor.execute(db_sql) result = cursor.fetchall() db.close() # 清空表格 self.query1_window.table_widget.setRowCount(0) self.query1_window.table_widget.setColumnCount(len(result[0])) # 添加数据到表格 for row_num, row_data in enumerate(result): self.query1_window.table_widget.insertRow(row_num) for col_num, col_data in enumerate(row_data): self.query1_window.table_widget.setItem(row_num, col_num, QTableWidgetItem(str(col_data))) # 显示窗口 self.query1_window.show()怎么设置筛选器按ID筛选结果并展示
时间: 2023-07-16 12:15:56 浏览: 89
解决pymysql cursor.fetchall() 获取不到数据的问题
假设你要按照ID来筛选结果,并且ID是数据库表中的一个列,你可以使用SQL语句的`WHERE`子句来指定筛选条件,然后再执行查询并展示结果。具体实现如下:
```
def show_query1_result(self, id):
# 查询数据
db = pymysql.connect(host='39.99.214.172', user='root', password='Solotion.123', db='jj_tset')
cursor = db.cursor()
db_sql = f"SELECT * FROM your_table_name WHERE id = {id}"
cursor.execute(db_sql)
result = cursor.fetchall()
db.close()
# 清空表格
self.query1_window.table_widget.setRowCount(0)
self.query1_window.table_widget.setColumnCount(len(result[0]))
# 添加数据到表格
for row_num, row_data in enumerate(result):
self.query1_window.table_widget.insertRow(row_num)
for col_num, col_data in enumerate(row_data):
self.query1_window.table_widget.setItem(row_num, col_num, QTableWidgetItem(str(col_data)))
# 显示窗口
self.query1_window.show()
```
在上面的代码中,`id`参数是要筛选的ID,它会被拼接到SQL语句中的`WHERE`子句中。注意,这样的写法可能存在SQL注入的风险,建议使用参数化查询来避免这个问题。另外,`your_table_name`需要替换成你的表名。
阅读全文