ホームページ > データベース > mysql チュートリアル > MySQL で「Harligt」と「Härligt」が同じ結果を返すのはなぜですか?

MySQL で「Harligt」と「Härligt」が同じ結果を返すのはなぜですか?

Linda Hamilton
リリース: 2024-10-25 08:50:02
オリジナル
688 人が閲覧しました

Why Do `Harligt` and `Härligt` Return the Same Results in MySQL?

MySQL の Unicode 文字の処理: Ä、Ö、および Ü

両方の "Harligt" を検索すると、同一のクエリ結果が表示されるのは不可解です。 MySQL の「Härligt」。この動作は、特定の Unicode 文字を同一視する MySQL のデフォルトの照合設定に起因します。

MySQL の非言語固有の Unicode 照合順序 (utf8_general_ci や utf8_unicode_ci など) は、特定の文字を同等のものとして扱います。つまり、

  • Ä = A
  • Ö = O
  • Ü = U

その結果、2 つのクエリは 3 つの文字すべてを同一であると認識し、一致する結果が得られます。 .

この問題を解決するには、次の 2 つのオプションがあります:

  1. 照合順序の変更: この文字の同等化を実行しない照合順序 (utf8_bin など) に切り替えます。 。ただし、この決定はデータ処理に広範な影響を与える可能性があります。
  2. 特定のクエリの照合順序をオーバーライドする: 個々のクエリについては、目的の照合順序を明示的に指定することでデフォルトの照合順序をオーバーライドできます。例:
<code class="sql">select * from topics where name='Harligt' COLLATE utf8_bin;</code>
ログイン後にコピー

このアプローチでは、自動文字変換を行わずに大文字と小文字を区別した検索が可能になります。

大文字と小文字を区別しない検索が必要だが文字変換を行わない場合、MySQL は現在、適切な照合順序が提供されていません。ただし、コミュニティ内では継続的な議論と潜在的な解決策が存在します。

以上がMySQL で「Harligt」と「Härligt」が同じ結果を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート