Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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
MySQL转义所有内容(所有特殊字符)_Mysql_Sql_Django_Search - Fatal编程技术网

MySQL转义所有内容(所有特殊字符)

MySQL转义所有内容(所有特殊字符),mysql,sql,django,search,Mysql,Sql,Django,Search,我正在进行一个mysql查询,以选择值为的内容,如query\u search 我想要实现的是搜索作为参数传递给查询的确切query\u search。 例如,如果query\u search是以下内容之一:%admin,您是\,'/\u%',我只想查找具有精确匹配的条目 对于%admin我只想找到条目%admin,但不应该找到myadmin 那么,如何转义所有mysql特殊字符呢 将\放在query\u search的每个字符前面将是一个好的解决方案 对于了解Django的人,我使用 some

我正在进行一个mysql查询,以选择值为
的内容,如query\u search

我想要实现的是搜索作为参数传递给查询的确切
query\u search
。 例如,如果
query\u search
是以下内容之一:
%admin
您是\
'/\u%'
,我只想查找具有精确匹配的条目

对于
%admin
我只想找到条目
%admin
,但不应该找到
myadmin

那么,如何转义所有mysql特殊字符呢

\
放在
query\u search
的每个字符前面将是一个好的解决方案

对于了解Django的人,我使用

something.extra(
   where=['value like convert(_utf8%s using utf8)'],
   params=query_search,
)
其中,
something
是一个查询集。我使用MySQL作为数据库,并接收
query\u search
作为参数。也许有另一种方法可以通过Django实现这一点

谢谢。

您可以(或
icontains
)在
Queryset.filter
中:

something.filter(value__contains=query_search)

我的项目有一个API方法,允许多种类型的搜索<代码>def搜索(关键字,类型)。例如,如果类型为2,则允许搜索后缀。因此,如果
keyword='adm'
它应该找到'administration'。如果
keyword='adm%'
它应该什么也找不到。这就是为什么我必须欺骗mysql。我认为你的回答对我来说是可以的。我可以先执行
包含
筛选,然后根据
类型
进行进一步筛选。说得好