DBAtlas · データベース運用アトラス

1267: Illegal mix of collations(照合順序の不正な混在)

MySQL

意味

比較または結合の操作 (JOIN、WHERE、UNION、CONCAT) で、照合順序の異なる 2 つの文字列が組み合わされ、MySQL はどの照合規則を適用すべきか判断できなかった。

原因

通常、文字セット/照合順序の異なる列の比較 (例: utf8mb4_general_ci と utf8mb4_unicode_ci、または latin1 と utf8mb4)、または列と接続の照合順序の不一致。テーブル/データベースが異なるデフォルトで作成された場合によく見られる。

対処方法

比較の両辺を同じ照合順序に揃える: COLLATE で明示的に照合順序を指定するか (例: col1 = col2 COLLATE utf8mb4_unicode_ci)、CONVERT(... USING ...) を使用する。恒久対策として、影響を受ける列/テーブルを一貫した単一の文字セットと照合順序に変換する。接続の照合順序 (collation_connection) も揃える。

DBAtlas で開く →

同じデータベースの他の項目