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 子句中使用日期范围的结果集中未显示正确日期

sq优化的几种方法(转)

选择子句上的 CASE 子句抛出 'SQ​​LCODE=-811, SQLSTATE=21000' 错误

使用具有一个条件的 WHERE 子句运行 100 个 SQL 查询,还是使用具有 100 个条件的 WHERE 子句的一个查询更好?

无法使用 pypyodbc 在 python 中使用 where 子句运行 mssql 选择查询

如何在 switch 语句中使用 laravel 模型运行多个 Where 子句