我有一個查詢作為 python 代碼的一部分,其中查詢需要使用程式中的變數以及來自另一個資料庫的值。我正在使用 mysql-connector-python。
的值name存在于 python 程式中,我想使用該值和表metrics中的值將值插入表中points。
這是我迄今為止嘗試過的:
class summer:
def __init__(self, name):
self.name = name
def sum_fun(self, name):
try:
con = mysql.connector.connect(host='localhost',
database='databasename', user='root', password='mypasword', charset='utf8')
if con.is_connected():
cursor = con.cursor(buffered=True)
def create_points_table():
query=("INSERT INTO points(username, sale,comm,dank) VALUES (%s, (SELECT SUM(regional intnl) * 150, SUM(commission) * 50, SUM(thank_discount) * 10 FROM Metrics))")
cursor.execute(query, (name))
con.commit()
create_points_table();
except Error as e:
print(e)
cursor.close()
con.close()
查詢:
query=("INSERT INTO points(username, sale,comm,dank)
VALUES (%s,
(SELECT
SUM(regional intnl) * 150,
SUM(commission) * 50,
SUM(thank_discount) * 10 FROM Metrics))")
查詢呼叫:
cursor.execute(query, (name))
沒有任何值被插入到點表中。我在這里做錯了什么?
uj5u.com熱心網友回復:
你不能混合使用values和這樣的子查詢,但你可以查詢你打算在values子句中擁有的值:
query=("INSERT INTO points(username, sale,comm,dank)
(SELECT
%s, -- Here!
SUM(regional intnl) * 150,
SUM(commission) * 50,
SUM(thank_discount) * 10 FROM Metrics))")
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/385386.html
標籤:mysql sql sql 插入 mysql-connector-python
