MySQLのSOUNDEX()関数とは?音声一致検索のための基本構文と使い方を解説
SOUNDEX()関数の基本的な構造
MySQLのSOUNDEX()関数は、文字列からSoundexコードと呼ばれる文字列を返す関数です。Soundexは、英語の発音に基づいて名前などを索引付けするための音声アルゴリズムであり、発音が似ている単語同士を同じコードに変換することで、「響き」によるあいまい検索を可能にします。
SOUNDEX()を使用してMySQL内で検索を行う場合の適切な構文は以下の通りです。
SOUNDEX(Str)
ここで、StrにはSoundex文字列を取得したい対象の文字列を指定します。
SOUNDEX()の使用例
実際にいくつかの文字列に対してSOUNDEX()関数を実行してみましょう。
mysql> Select SOUNDEX('MySQL');
+------------------+
| SOUNDEX('MySQL') |
+------------------+
| M240 |
+------------------+
1 row in set (0.00 sec)
mysql> Select SOUNDEX('harshit');
+--------------------+
| SOUNDEX('harshit') |
+--------------------+
| H623 |
+--------------------+
1 row in set (0.00 sec)
mysql> Select SOUNDEX('hrst');
+-----------------+
| SOUNDEX('hrst') |
+-----------------+
| H623 |
+-----------------+
1 row in set (0.00 sec)実行結果のポイント
上記の例に注目すると、SOUNDEX('harshit')とSOUNDEX('hrst')の結果がどちらも「H623」と同じになっていることがわかります。これは、2つの単語の発音(響き)が同一であるためです。つまり、綴りは異なっていても、読み方が似ている単語は同じSoundexコードに変換されます。
この特性を活かすことで、たとえば顧客データベース内で氏名の表記ゆれがあるレコードを探したり、入力ミスによるスペルの違いを吸収して検索したりすることが可能になります。WHERE句と組み合わせてWHERE SOUNDEX(カラム名) = SOUNDEX('検索語')のように使うのが一般的な活用方法です。
-
MySQLデータベースにおけるdatetime型の正しい書式とは?
MySQLデータベースにおけるdatetime型の正しい書式MySQLデータベースでdatetime型を扱う際の正しい書式は、以下の通りです。YYYY-MM-DD HH:MM:SS年を4桁、月と日を2桁で表し、それぞれをハイフン(-)で区切ります。時刻部分は24時間表記で、「時:分:秒」の順にコロン(:)で区切って指定します。テーブルの作成まず、datetime型のカラムを持つテーブルを作成してみましょう。mysql> create table DemoTable797 ( ArrivalDatetime datetime);Query OK, 0 ro
-
MySQLプログラムのコマンドラインでオプションを使う方法を解説
MySQLプログラムでは、コマンドラインからさまざまなオプションを指定することで、動作を細かく制御できます。本記事では、MySQLプログラムのコマンドラインでオプションを使用する方法について、基本ルールから具体例までわかりやすく解説します。 コマンドラインオプションの基本ルール コマンドラインで指定するMySQLプログラムのオプションには、以下のルールが存在します。 1. オプションはコマンド名の後に記述する すべてのオプションは、実行するコマンド名の後に続けて指定します。 2. ショートフォームとロングフォーム オプション引数は、ハイフン1つ(-)または2つ(--)で始まります。ハイフ