如何在具有 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 + "%",))
我有一个 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 + "%",))