我正在搜索SQL表以查找以我的名字开头的客户,并且我在编写“ Starting With”逻辑时遇到问题,当它的WHERE吗? =。 我正在使用pyodbc并使用用于SQL Server的驱动程序ODBC Driver 17
我已经看到了很多类似问题的答案,但是他们总是指使用%s的代码,而当我尝试使用它时,这是行不通的
我尝试了许多类似的方式来写'%',但是我找不到任何示例
我当前的代码是:
cursor.execute("select CustomerName, CustomerNum From customer WHERE Company = ? AND CustomerName = ?", Company, CustomerName)
result = cursor.fetchall()
for row in result:
print (row)
CustomerName var设置为“ Mic”,结果应为:
Microsoft
微型系统
等等。
谢谢
答案 0 :(得分:2)
您需要将参数与%
通配符连接。在MySQL中,您使用CONCAT()
函数;在SQL-Server中,您使用+
运算符。
此外,填充占位符的参数应位于元组中,而不是cursor.execute()
的单独参数。
MySQL:
cursor.execute("select CustomerName, CustomerNum From customer WHERE Company = ? AND CustomerName LIKE CONCAT(?, '%')", (Company, CustomerName))
SQL-Server:
cursor.execute("select CustomerName, CustomerNum From customer WHERE Company = ? AND CustomerName ? + '%'", (Company, CustomerName))