スペイン語アクセントに対する 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 サイトの他の関連記事を参照してください。