在后台执行搜索的时候,出现一个问题,创建的三个表,其中一个支持中文搜索,另外有一个不支持中文搜索,提示OperationalError: (1271, "Illegal mix of collations for operation 'like'")错误。
解决方法:
找到django包下面的\site-packages\django\db\backends\mysql\base.py文件,编辑
将icontains的值 'icontains': 'LIKE %s',改为'icontains': 'LIKE BINARY %s',修改后为:
operators = {
'exact': '= %s',
'iexact': 'LIKE %s',
'contains': 'LIKE BINARY %s',
'icontains': 'LIKE BINARY %s',
'regex': 'REGEXP BINARY %s',
'iregex': 'REGEXP %s',
重启后就成功了。
疑问:为什么同一个库下的两个表,一个支持中文搜索,一个就不支持?
————————————————
版权声明:本文为CSDN博主「lion_zhou」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhouxuan623/article/details/90670982