如何在具有 LIKE 关键字的 SQL 查询中提供参数

How to give parameters in SQL query having LIKE keyword

我有一个 Workers SQLite table,我正在尝试显示名称以用户输入的特定字符开头的所有工作人员。

letter = input("\nEnter starting letter of worker: ")
(cursor.execute("SELECT * FROM Workers WHERE Worker_Name LIKE '(?)%'", (letter,))).fetchall()

但我总是收到这个错误:

sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 0, and there are 1 supplied.

但是当我这样给予时,它起作用了:

(cursor.execute("SELECT * FROM Workers WHERE Worker_Name LIKE 'J%'")).fetchall()

在查询中使用字符串连接:

cursor.execute("SELECT * FROM Workers WHERE Worker_Name LIKE ? || '%'", (letter,))

...或在您的应用程序代码中使用字符串连接:

cursor.execute("SELECT * FROM Workers WHERE Worker_Name LIKE ?", (letter + "%",))