在后台执行搜索的时候,出现一个问题,创建的三个表,其中一个支持中文搜索,另外有一个不支持中文搜索,提示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',
重启后就成功了。
疑问:为什么同一个库下的两个表,一个支持中文搜索,一个就不支持?