ホームページ >データベース >mysql チュートリアル >MySQL の不正な照合順序の混在エラー (latin1_swedish_ci と utf8_general_ci) を解決する方法は?
MySQL 文字セットの競合エラーの詳細と解決策
大量のデータを処理すると、MySQL で次のエラーが発生する場合があります:
<code>错误号:1267 操作“=”的字符集校对(latin1_swedish_ci,隐式)和(utf8_general_ci,可强制)不匹配</code>
このエラーは、MySQL が異なる文字セット照合順序でデータを比較しようとした場合に発生し、その結果非互換性が生じます。この場合、「keyword」列 (「latin1_swedish_ci」と照合すると仮定) を「utf8_general_ci」と照合できる文字列リテラルと比較するクエリ中にエラーが発生します。
文字セットの競合を解決する
このエラーを解決するには、いくつかのことを試すことができます:
<code>SET collation_connection = 'utf8_general_ci';</code>
<code>ALTER DATABASE your_database_name CHARACTER SET utf8 COLLATE utf8_general_ci; ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;</code>
その他の注意事項
MySQL では、明らかな理由もなく「latin1_swedish_ci」照合順序が導入されることがあります。今後この問題を回避するには、テーブル、列、ストアド プロシージャを含むすべてのデータベース オブジェクトの文字セットと照合順序を明示的に定義します。すべてのデータが一貫して照合されるようにすることで、このようなエラーの発生を防ぐことができます。
以上がMySQL の不正な照合順序の混在エラー (latin1_swedish_ci と utf8_general_ci) を解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。