LIKE子句。在python连接器mysql中

LIKE子句。在python连接器mysql中,python,mysql,sql,count,sql-like,Python,Mysql,Sql,Count,Sql Like,我试图通过LIKE子句获得电影标题中包含单词the的数量。在Python连接器MySQL中: 单词 query=从电影中选择COUNTtitle,其中的标题类似于“%%%s%%”%word, cursor.executequery SQL语法错误;请查看与MySQL服务器版本对应的手册,以了解可在“从电影中选择COUNTtitle”附近使用的正确语法,其中第1行的标题为“%the%” p=平均值 query=从电影中选择COUNTtitle,其中标题为%+p+%, cursor.executeq

我试图通过LIKE子句获得电影标题中包含单词the的数量。在Python连接器MySQL中:

单词 query=从电影中选择COUNTtitle,其中的标题类似于“%%%s%%”%word, cursor.executequery SQL语法错误;请查看与MySQL服务器版本对应的手册,以了解可在“从电影中选择COUNTtitle”附近使用的正确语法,其中第1行的标题为“%the%” p=平均值 query=从电影中选择COUNTtitle,其中标题为%+p+%, cursor.executequery,p, AttributeError:“tuple”对象没有属性“encode” 你会做:

query=从电影中选择COUNTtitle,其中的标题如CONCAT“%”、%s“%”; cursor.executequery、word、, 这使用了一个适当的预处理语句将变量传递给查询,因此代码不会被SQL注入,而且效率更高

您还可以在应用程序端连接通配符:

query=从电影中选择COUNTtitle,其中的标题类似于%s; cursor.executequery“%”+word+“%”,
您尚未将任何绑定参数放入第二个查询中。,%+p+%,它不仅将参数标记到查询的末尾,还将参数解压到占位符中。第一个查询是开放注入的,应该完全避免您的问题出现在代码的某个地方。当您在python中执行object,object时,它隐式地转换为元组object,object,所以一些额外的代码将部分代码转换为元组。请确保您的查询是一个字符串,并且您在cursor.execute中传递的参数正确无误。它工作正常!谢谢,这也很有效。再次感谢!!欢迎@yonatanmirsky。如果我的答案正确回答了您的问题,请单击复选标记。谢谢