python - 为什么我想在mysql中计算多个表的数据频率时出现错误?Flask 用于创建 Web 应用程序
问题描述
我想在我的网络应用程序中创建一个仪表板小部件。第一步是从两个表中统计mysql中pos、neg和neu的频率。我试图在 Flask 中找到解决方案,但并不多。希望你能帮助我。
我得到的错误是:
MySQLdb._exceptions.OperationalError: (1241, '操作数应包含 1 列')
mysql中的表:
问题9
问题10
我的代码:
@app.route('/we/<string:programid>')
def we(programid):
# Create cursor
cur = mysql.connection.cursor()
result = """SELECT(
(SELECT programid,sentiment, COUNT(*)
FROM ques9 AS question9
WHERE programid= %s
GROUP BY sentiment),
(SELECT programid,q10_sentiment, COUNT(*)
FROM ques10 AS question10
WHERE programid=%s
GROUP BY q10_sentiment ))"""
data_tuple = (programid, programid)
cur.execute(result, data_tuple)
program = cur.fetchall()
mysql.connection.commit()
if result > 0:
return render_template('we.html',program=program)
else:
msg = 'No Results Found'
return render_template('we.html', msg=msg)
# Close connection
cur.close()
解决方案
group by 必须在 where 子句之后所以我发布了所有 python 代码,我想添加一个尝试,但你可以查找
你的 sql 有一些问题,比如他自己的组,l 但你的 python 代码也有缺陷,如下所示。sql 查询的变量和要发送的数据,我在那里,所以它看起来有点干净
connection = mysql.connector.connect(host='localhost',
database='test_db',
user='user',
password='password')
cur = connection.cursor(prepared=True)
sql_update_query = """SELECT(
(SELECT programid,sentiment, COUNT(*)
FROM ques9 AS question9
WHERE programid= %s
GROUP BY sentiment),
(SELECT programid,q10_sentiment, COUNT(*)
FROM ques10 AS question10
WHERE programid=%s
GROUP BY q10_sentiment ))"""
data_tuple = (programid, programid)
cur .execute(sql_update_query, data_tuple)
connection.commit()
if (connection.is_connected()):
cur.close()
connection.close()
推荐阅读
- antlr - ANTLR4 中关于立即左递归的错误
- html - Range Slider Input
- google-sheets-formula - Google 表格 - 查询具有不同结构的多个表格
- https - Axios 无法正确解析 response.data
- python - python中有没有办法将导入存储在模块中,然后运行所述模块来加载包?
- python - 类型错误:'在
' 需要字符串作为左操作数,而不是字节,python - caching - CloudFront / S3 ETag:CloudFront 是否可以在 CF TTL 过期之前发送更新的 S3 对象?
- node.js - 如何在 linode 端口 80 上部署 nodejs 应用程序?
- docker - Gitlab-runner dind 导致错误:作业失败(系统故障):来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:380:
- javascript - 将 JSON 数据写入 JSON 文件并使用 FS 读取