首頁  >  文章  >  資料庫  >  為什麼「Harligt」和「Härligt」在 MySQL 中回傳相同的結果?

為什麼「Harligt」和「Härligt」在 MySQL 中回傳相同的結果?

Linda Hamilton
Linda Hamilton原創
2024-10-25 08:50:02556瀏覽

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

MySQL 對Unicode 字元的處理:Ä、Ö 和Ü

在搜尋兩個「Harligt」時遇到相同的查詢結果是令人費解的MySQL 中的「和」Härligt」。此行為源自於MySQL 的預設排序規則設置,該設定等同於某些Unicode 字元。

MySQL 的非特定於語言的Unicode 排序規則(例如utf8_general_ci 和utf8_unicode_ci)將某些字符視為等效字符,即:

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

Ü = U

因此,兩個查詢將所有三個字元視為相同,從而產生匹配結果.

    要解決此問題,有兩個選項:
  1. 更改排序規則:
  2. 切換到不執行此字元等同的排序規則,例如utf8_bin 。覆寫特定查詢的排序規則:對於單一查詢,可以透過明確指定所需的排序規則來覆寫預設排序規則。的搜索,而無需自動字元轉換。 。

以上是為什麼「Harligt」和「Härligt」在 MySQL 中回傳相同的結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn