查詢視圖時報錯:java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '=';
本地環境:mysql8.0.13
異常提示排序規則編碼混亂,mysql8.0.1之后的默認COLLATE為utf8mb4_0900_ai_ci;
檢查視圖中所包含的表發現其中一個建表時 沒有設置編碼,並且其他的表設置的是 CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;因此導致混亂;
查看當前數據庫的默認編碼:
mysql> show variables where Variable_name like 'collation%';

查看各表編碼:
mysql> show create table ‘table_name’;
解決方案給沒有設置編碼的表重新設置一下:
mysql> alter table table_name default character set utf8mb4 collate=utf8mb4_general_ci;

這樣設置只針對表的,但是表中字段未修改:
mysql> ALTER TABLE table_name convert to CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

修改完成以后,重新創建視圖!!!!
