MariaDBでは、SOUNDS LIKE
を使用できます 似たような単語に一致するクエリで。
構文
構文は次のようになります:
expr1 SOUNDS LIKE expr2
これを行うのと同じです:SOUNDEX(expr1) = SOUNDEX(expr2)
。
Soundexは、英語で発音されるように、音で名前にインデックスを付けるための音声アルゴリズムです。 2つの単語が同じように聞こえる場合は、同じSoundex文字列を使用する必要があります。 2つの単語が似ているように聞こえるが、まったく同じではない場合、それらのSoundex文字列は似ているように見えますが、まったく同じではない可能性があります。
例
基本的な例は次のとおりです。
SELECT 'Two' SOUNDS LIKE 'Too';
結果:
+-------------------------+ | 'Two' SOUNDS LIKE 'Too' | +-------------------------+ | 1 | +-------------------------+
この場合、2つの単語は同じように聞こえます。
SOUNDEX()
を使用できます 各単語のSoundex文字列を返す関数:
SELECT
SOUNDEX('Two'),
SOUNDEX('Too');
結果:
+----------------+----------------+ | SOUNDEX('Two') | SOUNDEX('Too') | +----------------+----------------+ | T000 | T000 | +----------------+----------------+
Soundexの文字列は同じです。これがSOUNDS LIKE
の理由です 返された1
。
一致なし
同じように聞こえない2つの単語の例を次に示します。
SELECT 'Cat' SOUNDS LIKE 'Dog';
結果:
+-------------------------+ | 'Cat' SOUNDS LIKE 'Dog' | +-------------------------+ | 0 | +-------------------------+
この場合、0
を取得しました 、言葉が同じように聞こえないからです。おそらく、それらのSoundex文字列は異なります。調べてみましょう:
SELECT
SOUNDEX('Cat'),
SOUNDEX('Dog');
結果:
+----------------+----------------+ | SOUNDEX('Cat') | SOUNDEX('Dog') | +----------------+----------------+ | C300 | D200 | +----------------+----------------+
うん。さまざまなSoundex文字列。
データベースの例
SOUNDS LIKE
の使用例を次に示します。 WHERE
で データベースクエリの句:
SELECT
PetName,
SOUNDEX(PetName),
SOUNDEX('Wagg')
FROM Pets
WHERE PetName SOUNDS LIKE 'Wagg';
結果:
+---------+------------------+-----------------+ | PetName | SOUNDEX(PetName) | SOUNDEX('Wagg') | +---------+------------------+-----------------+ | Wag | W200 | W200 | +---------+------------------+-----------------+
ここでは、SOUNDEX()
を使用しています 同じことをする関数:
SELECT
PetName,
SOUNDEX(PetName),
SOUNDEX('Wagg')
FROM Pets
WHERE SOUNDEX(PetName) = SOUNDEX('Wagg');
結果:
+---------+------------------+-----------------+ | PetName | SOUNDEX(PetName) | SOUNDEX('Wagg') | +---------+------------------+-----------------+ | Wag | W200 | W200 | +---------+------------------+-----------------+