MySQL转义所有内容(所有特殊字符)
我正在进行一个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
的内容,如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。我认为你的回答对我来说是可以的。我可以先执行包含
筛选,然后根据类型
进行进一步筛选。说得好