如何使用 "insert into select pause" 插入并在 Python Flask 中使用 iterable

How to insert using "insert into select pause" and using iterable in Python Flask

我正在使用 Python 烧瓶实现点餐功能。
我在插入 mysql 数据库时遇到困难,所以我问一个问题。

首先,我不得不从一个名为 menu 的 table 中获取数据并将其插入 order_detail,因此我使用了 insert into select.
我试图通过for语句将每个数据存储在order_detail table中,但我不知道如何将for语句的变量放入mysql。
代码如下。

def cart_insert(element):
    conn = pymysql.connect(**config)
    cur = conn.cursor()
    for item in element:
        sql = "insert into order_detail (order_id, menu_name, food_qty, food_price)\
                 select 1, item , 1, menu_price from menu where menu.menu_name=item "
        cur.execute(sql)

哦!!!!!!我解决了!!!!
我的问题是如何将 python 变量放入 mysql 数据库列中。
如果您遇到困难,请试试这个。

def cart_insert(element):
    conn = pymysql.connect(**config)
    cur = conn.cursor()
    for item in element:
        sql = "insert into order_detail (order_id, menu_name, food_qty, food_price)\
               select 1, %s, 1, menu_price from menu where menu.menu_name=%s"
        cur.execute(sql, (item, item))

我使用 insert into select 语句从另一个 table(menu table) 中获取数据。
在此处将 Python 变量插入数据库时​​出现问题。由于定义为以列表格式接收,所以在使用python变量时可以在pymysql中使用%s。

定义为以列表形式接收,所以在pymysql中使用python变量时可以使用%s
定义SQL,将刚刚创建的SQL放入执行函数中。而如果要在db中放入python个变量,只需要输入python个变量就可以了%s。