Skip to main content
 首页 » 编程设计

python之使用 ""从 Python 执行 SQL

2025年05月04日15del

由于选择中的“”,我无法从 Python 执行 SQL 语句。我想我已经尝试了所有组合,但无法弄清楚。你能帮帮我吗?

cnxn = pyodbc.connect("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\\python33\salesdb.mdb") 
cursor = cnxn.cursor() 
v_sql = "SELECT DISTINCT tblSeller.ID, tblSeller.Navn FROM tblResult INNER JOIN tblSeller ON tblResult.SellerID = tblSeller.ID WHERE (((tblSeller.Name)="Robert Smith" ))" 
cursor.execute(v_sql) 

问题是 SQL 中 Robert Smith 周围的 "。

请您参考如下方法:

您可以转义 引号或使用不同的引用样式。例如,这里可以使用单引号。

使用单引号:

v_sql = 'SELECT DISTINCT tblSeller.ID, tblSeller.Navn FROM tblResult INNER JOIN tblSeller ON tblResult.SellerID = tblSeller.ID WHERE (((tblSeller.Name)="Robert Smith" ))' 

使用转义:

v_sql = "SELECT DISTINCT tblSeller.ID, tblSeller.Navn FROM tblResult INNER JOIN tblSeller ON tblResult.SellerID = tblSeller.ID WHERE (((tblSeller.Name)=\"Robert Smith\" ))" 

或者您可以使用三重引号(''' 或 """ 之一);这些允许简单的多行字符串,因为换行符被允许并包含在最终字符串值:

v_sql = """ 
SELECT DISTINCT tblSeller.ID, tblSeller.Navn  
FROM tblResult INNER JOIN tblSeller ON tblResult.SellerID = tblSeller.ID 
WHERE (((tblSeller.Name)=\"Robert Smith\" )) 
"""