MySQL でスペイン語アクセントの発音記号を区別しない検索を実行するにはどうすればよいですか?

DDD
リリース: 2024-11-01 07:48:31
オリジナル
475 人が閲覧しました

How to Perform Diacritic Insensitive Search in MySQL for Spanish Accents?

スペイン語アクセントに対する MySQL 発音記号を区別しない検索

アクセント記号付き文字を含むデータを扱う場合、区別しない効果的な検索を実行するのは困難な場合があります発音記号に。これは、単語に一般的にアクセント (á、é、í、ó、ú) が含まれるスペイン語などの言語に特に関係します。

問題:

次のようなデータベース クエリ「SELECT * FROM table WHERE word LIKE '%word%'」は、「lápiz」ではなく「lapiz」など、検索語にさまざまなアクセントのバリエーションが含まれている場合、正確な結果を返さない可能性があります。

解決策: 文字セットと照合順序

発音記号を区別しない検索を有効にするには、データベース接続に適切な文字セットと照合順序を設定することが重要です。 MySQL では、これは次のコマンドを使用して実現できます:

SET NAMES latin1;
ログイン後にコピー

または

SET NAMES utf8;
ログイン後にコピー

「latin1」文字セットは、スペイン語などの言語でよく使用されますが、文字セットの数は限られています。アクセント付き文字の。 「utf8」は、より広範囲のアクセント付き文字をサポートする、より包括的な文字セットです。

文字セットを設定したら、次の構文を使用して、発音記号を区別しない検索を実行できます:

SELECT * FROM table WHERE word LIKE _utf8'search_term'
ログイン後にコピー

例:

mysql> SET NAMES latin1;
mysql> SELECT 'lápiz' LIKE 'lapiz';
+-----------------------+
| 'lápiz' LIKE 'lapiz' |
+-----------------------+
|                     0 | 
+-----------------------+
ログイン後にコピー

この例では、「lapiz」を検索しても「lápiz」は返されません。これは、「latin1」文字セットが発音記号を交換可能とみなさないためです。

mysql> SET NAMES utf8;
mysql> SELECT 'lápiz' LIKE 'lapiz';
+-----------------------+
| 'lápiz' LIKE 'lapiz' |
+-----------------------+
|                     1 | 
+-----------------------+
ログイン後にコピー

ただし、「utf8」文字セットを使用すると、発音記号の区別がサポートされているため、検索では「lápiz」と「lapiz」が正しく一致します。

以上がMySQL でスペイン語アクセントの発音記号を区別しない検索を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!