当前位置: 首页 > 知识库问答 >
问题:

PythonMySQL我如何循环通过一个选择?

苏磊
2023-03-14

我正在尝试用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

共有1个答案

伍捷
2023-03-14
    中执行 元素进行索引。/li> 需要同时获得所有值。但不能将其用于SELECT语句;您将只返回最后一次选择的结果。/li> 但我认为真正的问题是: 的第二个参数需要是 (或一些可迭代的)。在 的情况下,它需要是,例如,列表的列表。这两个你似乎都没有通过。/li>

所以:

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
 类似资料:
  • 我想允许至少3个复选框将检查,我试过下面的代码但它不是很好地工作。 HTML... jQuery 有人请帮助我,我如何选择至少2个复选框?

  • 这个plpgsql脚本从一组jsonb对象键:值对中选择键,但是如何为每对选择值呢? 应该可以作为手册页http://www.postgresql.org/docs/9.4/static/functions-json.html指示返回值是键文本、值文本的集合。这篇Postgres-array for loop回答了array的问题。还尝试了jsonb_each()和jsonb_array_elem

  • 问题内容: 为了在用户单击“清除按钮”时初始化a上的所有,我需要遍历(而不是将所有单个字段都设置为“”)。 我如何使用for-each循环来遍历s的搜索? 问题答案: 但是,如果您具有更深层嵌套的JTextField,则可以使用以下递归形式: 编辑: Tom Hawtin的 一个样本 -粗线 建议将在您的框架班级中列出: 并在初始化单个文本字段时,将它们添加到此列表中: 当用户单击清除按钮时,只需

  • 我正在Android studio中制作一个应用程序,我有从1到的分类按钮。我就是这样创造它们的: 我现在要做的是循环遍历每个按钮,只保留第一个按钮启用。因此,我想将它们从禁用为,如下所示: 这显然不起作用,因为它没有引用特定的按钮,它只是一个字符串。但我希望这能让你看到我正在努力实现的目标。基本上,我只需要找到一种方法,如何使用索引来引用按钮。我怎么能这样做呢? 感谢任何帮助。谢谢你!

  • 我需要根据数据库查询的结果集创建可变数量的JSON对象和JSON数组。JSON格式看起来与以下用于谷歌图表的格式非常相似。 我的问题是,我觉得这应该是一个简单的答案,如何在for循环中创建多个具有唯一名称的JSON对象?我的尝试:

  • 我正在尝试使我的循环回到列表的开始。 这是我当前用来检测列表末尾的东西(在这里找到): 当滚动到最后时,我希望视图在显示列表顶部的数据时是可见的,或者当滚动到列表顶部时,我将显示列表底部的数据。 例如: 视图5视图1视图2视图3视图4

  • 如下所示,我要反转数组。但我的代码不管用。这是我的for循环。请看一下。这个for循环正确吗。代码如下。

  • 问题内容: 您好,我正在尝试创建一个遍历链表的for循环。对于每条数据,它将单独列出。我正在尝试在此处学习链接列表,因此请不要提供数组建议。有人知道怎么做吗? 示例输出: 187号航班 501航班 我的代码如下: 问题答案: 只需使用增强的for循环,就像使用数组一样: