如何在python中写SQL-WHERE栏喜欢'something%'?

时间:2019-02-06 09:55:56

标签: python pyodbc

我正在搜索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

微型系统

等等。

谢谢

1 个答案:

答案 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))