python - Python MYSQL 如何循环选择?
问题描述
我正在尝试使用 MySQL 构建一个足球数据库。我做了一个包含团队的选择,我想在另一个选择中循环它们,所以我没有写 18 个不同的选择。你能帮我吗,我在哪里犯了错误?我不断收到错误。
k = 0
#Teams in one list
my_sq7 = "SELECT Team FROM bundesligatabella_2020_2021"
my_cursor.execute(my_sq7)
result3 = my_cursor.fetchall()
for row in result3:
my_sq9 = "SELECT SUM(Home_scored) FROM bundesliga_2020_2021_2 WHERE Home = %s"
my_cursor.executemany(my_sq9, result3[k][0])
result4 = my_cursor.fetchall()
k += 1
我还想将结果保存在另一个列表中,以更新另一列。
错误:
Traceback (most recent call last):
File "python\database.py", line 141, in <module>
my_cursor.executemany(my_sq9, result3[k][0])
File "Python\Python39\lib\site-packages\mysql\connector\cursor.py", line 675, in executemany
self.execute(operation, params)
File "Python\Python39\lib\site-packages\mysql\connector\cursor.py", line 569, in execute
self._handle_result(self._connection.cmd_query(stmt))
File "Python\Python39\lib\site-packages\mysql\connector\connection.py", line 651, in cmd_query
result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
File "Python\Python39\lib\site-packages\mysql\connector\connection.py", line 538, in _handle_result
raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%s' at line 1
解决方案
- 如果你正在做
for row in result3:
,那么就没有必要result3
使用索引来索引元素了。 executemany
一次期望所有的值。但是您不能将其用于 SELECT 语句;您将只返回最后一个 SELECT 的结果。- 但我相信真正的问题是: or 的第二个参数
execute
需要executemany
是list
ortuple
(或一些可迭代的)。在 的情况下executemany
,它需要是例如列表的列表。你似乎没有通过这些。
所以:
result3 = my_cursor.fetchall()
my_sq9 = "SELECT SUM(Home_scored) FROM bundesliga_2020_2021_2 WHERE Home = %s"
result4 = []
for row in result3:
my_cursor.execute(my_sq9, (row[0],))
result4.append(my_cursor.fetchone())
您是否考虑过通过以下方式获得您想要的东西:
SELECT Team, SUM(Home_scored) FROM bundesligatabella_2020_2021
GROUP BY Team
更正:
SELECT Team, SUM(Home_scored) FROM
bundesligatabella_2020_2021 t1 JOIN bundesliga_2020_2021_2 t2 on t1.Team = t2.Home
GROUP BY Team
推荐阅读
- vb.net - 服务器上的 Word 自动化失败,但开发站运行良好
- java - 如何在 Android 中制作具有动态下拉菜单的表单
- ruby-on-rails - 在命令行上运行时找不到 SCSS Rails 应用程序资源
- python - 如何计算python中的输入行
- javascript - 当我与比特币平均服务器通信时,它显示 403 状态代码错误
- html - 搜索框引导程序 4 无法定位在导航栏中的中间
- c - 针对 musl-gcc 编译 fio 的问题
- c# - Azure Batch - 资源文件准备任务
- css - 具有 3 个级别的 Bootstrap 4 菜单 - 第一个子菜单将无法选择
- javascript - 全部作为复选框