Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Django中使用LIKE语句执行mysql查询_Python_Mysql_Sql_Django - Fatal编程技术网

Python 如何在Django中使用LIKE语句执行mysql查询

Python 如何在Django中使用LIKE语句执行mysql查询,python,mysql,sql,django,Python,Mysql,Sql,Django,我试图用LIKE语句在我的mysql数据库中搜索: indexstr = request.GET['index'] indexstr = '%' + indexstr + '%' offset = int(request.GET['offset']) for row_data in advertisement.objects.raw( 'select * from requests_advertisement WHERE short_description LIKE ' +

我试图用
LIKE
语句在我的
mysql
数据库中搜索:

indexstr = request.GET['index']
indexstr = '%' + indexstr + '%'
offset = int(request.GET['offset'])
for row_data in advertisement.objects.raw(
        'select * from requests_advertisement WHERE short_description LIKE '    + indexstr + ' LIMIT 10 OFFSET ' + str(offset*5)):
但它有一个错误:


它似乎无法处理
%
字符。当我删除
%
时,它可以正常工作。

这里没有理由使用原始查询。您需要
\uu icontains
查找:

advertisement.objects.filter(short_description__icontains=request.GET["index"])

代码执行和“正常工作”是两件不同的事情。不要使用字符串连接来构建查询,这是一种SQL注入风险。我不知道这里的确切设置,但类似于
cursor.execute(“'select*from requests\u advision WHERE short\u description like%s”“,('%'+indexstr+'%'))
非常感谢,它很有效;-),它的性能和速度是否与使用like语句的查询相同?那么“match()对()查询”呢?