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 |
+---------+------------------+-----------------+