Di MariaDB, Anda dapat menggunakan SOUNDS LIKE
dalam kueri untuk mencocokkan kata-kata yang terdengar mirip.
Sintaks
Sintaksnya seperti ini:
expr1 SOUNDS LIKE expr2
Ini sama dengan melakukan ini:SOUNDEX(expr1) = SOUNDEX(expr2)
.
Soundex adalah algoritma fonetik untuk mengindeks nama dengan suara, seperti yang diucapkan dalam bahasa Inggris. Jika dua kata terdengar sama, mereka harus memiliki string Soundex yang sama. Jika dua kata terdengar mirip, tetapi tidak persis sama, string Soundex mereka mungkin terlihat mirip tetapi tidak persis sama.
Contoh
Berikut ini contoh dasarnya:
SELECT 'Two' SOUNDS LIKE 'Too';
Hasil:
+-------------------------+ | 'Two' SOUNDS LIKE 'Too' | +-------------------------+ | 1 | +-------------------------+
Dalam hal ini, kedua kata itu terdengar sama.
Kita dapat menggunakan SOUNDEX()
berfungsi untuk mengembalikan string Soundex dari setiap kata:
SELECT
SOUNDEX('Two'),
SOUNDEX('Too');
Hasil:
+----------------+----------------+ | SOUNDEX('Two') | SOUNDEX('Too') | +----------------+----------------+ | T000 | T000 | +----------------+----------------+
Senar Soundex identik. Inilah sebabnya mengapa SOUNDS LIKE
mengembalikan 1
.
Tidak Cocok
Berikut ini contoh dua kata yang tidak terdengar sama:
SELECT 'Cat' SOUNDS LIKE 'Dog';
Hasil:
+-------------------------+ | 'Cat' SOUNDS LIKE 'Dog' | +-------------------------+ | 0 | +-------------------------+
Dalam hal ini kami mendapat 0
, karena kata-katanya tidak terdengar sama. Agaknya, senar Soundex mereka berbeda. Mari kita cari tahu:
SELECT
SOUNDEX('Cat'),
SOUNDEX('Dog');
Hasil:
+----------------+----------------+ | SOUNDEX('Cat') | SOUNDEX('Dog') | +----------------+----------------+ | C300 | D200 | +----------------+----------------+
Ya. Senar Soundex yang berbeda.
Contoh Basis Data
Berikut ini contoh penggunaan SOUNDS LIKE
di WHERE
klausa kueri basis data:
SELECT
PetName,
SOUNDEX(PetName),
SOUNDEX('Wagg')
FROM Pets
WHERE PetName SOUNDS LIKE 'Wagg';
Hasil:
+---------+------------------+-----------------+ | PetName | SOUNDEX(PetName) | SOUNDEX('Wagg') | +---------+------------------+-----------------+ | Wag | W200 | W200 | +---------+------------------+-----------------+
Ini dia menggunakan SOUNDEX()
berfungsi untuk melakukan hal yang sama:
SELECT
PetName,
SOUNDEX(PetName),
SOUNDEX('Wagg')
FROM Pets
WHERE SOUNDEX(PetName) = SOUNDEX('Wagg');
Hasil:
+---------+------------------+-----------------+ | PetName | SOUNDEX(PetName) | SOUNDEX('Wagg') | +---------+------------------+-----------------+ | Wag | W200 | W200 | +---------+------------------+-----------------+