MySQL逃避一切(所有特殊字符)

时间:2014-05-30 13:25:24

标签: mysql sql django search

我正在创建一个mysql查询来选择值为LIKE query_search

的内容

我想要实现的是搜索作为参数传递的确切query_search到查询。 例如,如果query_search是以下之一:%adminyou're\'/_%',我只想查找具有完全匹配的条目。

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

那么,如何逃避所有mysql特殊字符?

\放在query_search的每个字符前面会是一个很好的解决方案吗?

对于 Django 知识者,我正在使用

something.extra(
   where=['value like convert(_utf8%s using utf8)'],
   params=query_search,
)

其中something是QuerySet。我使用MySQL作为数据库,我收到query_search作为参数。也许还有另一种方法可以实现Django。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以在icontainsuse contains(或Queryset.filter}:

something.filter(value__contains=query_search)