- カテゴリ:
SOUNDEX¶
入力文字列の音声表現を含む文字列を返します。
この関数は通常、姓 Levine
と Lavine
などの2つの文字列、または単語 to
と too
が類似した英語の発音を持つかどうかを判断するのに役立ちます。
構文¶
SOUNDEX( <varchar_expr> )
引数¶
varchar式
発音の表現が返される文字列です。文字列には、ラテン文字またはユニコード文字セットを使用する必要があります。
戻り値¶
返される値は、入力文字列の音声表現を含む VARCHAR です。つまり、戻り値は、入力文字列のスペルではなく、発音を表す文字列(サウンドではない)です。
返される値は、文字列の最初の文字を表す文字で始まり、その後に3桁が続きます(例: s400
、 c130
)。
戻り値の計算方法の詳細については、 Soundex音声アルゴリズム (Wikipedia)をご参照ください。
使用上の注意¶
関数は4文字(1文字と3桁)しか返さないため、出力は主に文字列全体ではなく、入力の最初の数音節によって決定されます。
例えば、次のステートメントは3つの文字列を比較し、各文字列に対して同じ SOUNDEX 値を返します。スペルと意味が完全に異なっていても、音韻的に類似した音節で始まるためです。
SELECT SOUNDEX('I love rock and roll music.'), SOUNDEX('I love rocks and gemstones.'), SOUNDEX('I leave a rock wherever I go.'); +----------------------------------------+--------------------------+------------------------------------------+ | SOUNDEX('I LOVE ROCK AND ROLL MUSIC.') | SOUNDEX('I LOVE ROCKS.') | SOUNDEX('I LEAVE A ROCK WHEREVER I GO.') | |----------------------------------------+--------------------------+------------------------------------------| | I416 | I416 | I416 | +----------------------------------------+--------------------------+------------------------------------------+
例¶
次のクエリは、スペルが異なる2つの名前に対して SOUNDEX 値を返しますが、通常は同じように発音されます。
SELECT SOUNDEX('Marks'), SOUNDEX('Marx'); +------------------+-----------------+ | SOUNDEX('MARKS') | SOUNDEX('MARX') | |------------------+-----------------| | M620 | M620 | +------------------+-----------------+
次のクエリは、 SOUNDEX を使用して、異なるテーブルで潜在的に関連する行を見つける方法を示しています。
テーブルを作成してロードします。
CREATE TABLE sounding_board (v VARCHAR); CREATE TABLE sounding_bored (v VARCHAR); INSERT INTO sounding_board (v) VALUES ('Marsha'); INSERT INTO sounding_bored (v) VALUES ('Marcia');SOUNDEXのない関連レコードを探します。
SELECT * FROM sounding_board AS board, sounding_bored AS bored WHERE bored.v = board.v; +---+---+ | V | V | |---+---| +---+---+SOUNDEXを使用して関連レコードを探します。
SELECT * FROM sounding_board AS board, sounding_bored AS bored WHERE SOUNDEX(bored.v) = SOUNDEX(board.v); +--------+--------+ | V | V | |--------+--------| | Marsha | Marcia | +--------+--------+