Pyodbc - 使用 WHERE 子句运行 SQL 查询(语法错误)
Posted
技术标签:
【中文标题】Pyodbc - 使用 WHERE 子句运行 SQL 查询(语法错误)【英文标题】:Pyodbc - Running SQL Query with WHERE clause (syntax errors) 【发布时间】:2017-06-20 07:19:01 【问题描述】:我正在使用 Pyodbc,并已连接到数据库。我可以轻松地在我只使用 SELECT 和 FROM 语句的地方提取数据。
但是,当我尝试使用 WHERE 语句时,它会抛出语法错误:
这是代码:
import pyodbc
conn = pyodbc.connect('DSN=QueryBuilder')
cursor = conn.cursor()
cursor.execute('SELECT * FROM dbo.Grantinformation WHERE HoldingOrganisationName = 'university of edinburgh'')
我收到此错误:
SyntaxError: 无效语法
如果我跑:
SELECT *
FROM dbo.Grantinformation
WHERE HoldingOrganisationName = 'university of edinburgh'
在 SQL Server Management Studio 中,SQL 运行良好,所以很明显我在使用 pyodbc 时做错了什么?
非常感谢
【问题讨论】:
【参考方案1】:不,这是一个简单的 Python 语法错误。您的 sql 字符串中有单引号,因此您需要在字符串本身周围使用双引号:
cursor.execute("SELECT * FROM dbo.Grantinformation WHERE HoldingOrganisationName = 'university of edinburgh'")
【讨论】:
哎呀!谢谢丹尼尔!以上是关于Pyodbc - 使用 WHERE 子句运行 SQL 查询(语法错误)的主要内容,如果未能解决你的问题,请参考以下文章
SQL - 在 WHERE 子句中使用日期范围的结果集中未显示正确日期
选择子句上的 CASE 子句抛出 'SQLCODE=-811, SQLSTATE=21000' 错误
使用具有一个条件的 WHERE 子句运行 100 个 SQL 查询,还是使用具有 100 个条件的 WHERE 子句的一个查询更好?