【发布时间】:2021-07-26 01:56:57
【问题描述】:
用户提供输入,输入可以是全名或部分名称。查询应显示所有匹配的输出。这是我正在使用的代码
c.execute("SELECT name FROM ALLNAMES WHERE Cname ='" + ('%'+ Input.get()+'%') + "';")
我正在使用 python,输出是一个看起来不正确的空列表。
【问题讨论】:
标签: python mysql mysql-workbench
用户提供输入,输入可以是全名或部分名称。查询应显示所有匹配的输出。这是我正在使用的代码
c.execute("SELECT name FROM ALLNAMES WHERE Cname ='" + ('%'+ Input.get()+'%') + "';")
我正在使用 python,输出是一个看起来不正确的空列表。
【问题讨论】:
标签: python mysql mysql-workbench
您需要like 而不是=
c.execute("SELECT name FROM ALLNAMES WHERE Cname LIKE '" + ('%'+ Input.get()+'%') + "';")
【讨论】:
您的意思是 like 查询,而不是平等。 所以在这种情况下,它将是:
c.execute("SELECT name FROM ALLNAMES WHERE Cname LIKE '"+ ('%'+ Input.get()+'%') + "';")
https://www.mysqltutorial.org/mysql-like/
请注意,将查询参数放在查询字符串中并不是一个好主意。它很容易被 sql 注入攻击。至少使用查询参数。
【讨论】: