1271, Illegal mix of collations for operation 'like'解决方法
在admin模糊查询中加到一定的字段,在查询中文时,出现报错:
(1271, "Illegal mix of collations for operation 'like'")
问题所在是:
MySQL Illegal mix of collations for operation 'like', MySQL 5.5 以上, 若字段类型 Type 是 time,date,datetime
在 select时如果使用 like '%中文%' 会出现 Illegal mix of collations for operation 'like'。执行时可能就会出现时间字段 like '%中文%' 这种语法,,旧版的 MySQL 是不会出现错误的。升到 MySQL 5.5 以上, 必需改成 like binary '%中文%' 即可避免出现错误。
解决方法:
进入:
C:\python\py\Lib\site-packages\django\db\backends\mysql\base.py
根据情况查看自己相应的文件
C:\python\py 为我的python环境安装目录
找到对应的db路径下的base.py文件
'icontains': 'LIKE %s', 改为: 'icontains': 'LIKE BINARY %s',
重启后模糊查询中文可以了。