MySql 中出现“非法排序规则混合”错误
执行查询时遇到“非法排序规则混合”错误可能是令人沮丧。要解决此问题,请按照以下步骤操作:
检查排序规则
首先,识别排序规则不兼容的列。运行以下查询:
SELECT table_schema, table_name, column_name, character_set_name, collation_name FROM information_schema.columns WHERE collation_name = 'latin1_general_ci' ORDER BY table_schema, table_name,ordinal_position;
修复排序规则不一致
识别出有问题的列后,请使用以下查询调整其排序规则以匹配所需的排序规则:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET latin1 COLLATE 'latin1_swedish_ci';
将“tbl_name”替换为排序规则不一致的表的名称。
示例
将这些步骤应用于示例查询提供的将解决问题:
SELECT username, (SUM(rating)/COUNT(*)) as TheAverage, Count(*) as TheCount FROM ratings WHERE month='Aug' AND username IN (SELECT username FROM users WHERE gender =1) GROUP BY username HAVING TheCount > 4 ORDER BY TheAverage DESC, TheCount DESC
注意事项
以上是如何解决 MySQL 中的“非法混合排序规则”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!