Jedną z wielu funkcji napisowych MySQL jest SOUNDEX() funkcjonować. Ta funkcja zwraca ciąg Soundex z podanego ciągu. Jeśli dwa słowa brzmią tak samo, powinny mieć ten sam ciąg Soundex. Jeśli dwa słowa brzmią podobnie, ale nie dokładnie tak samo, ich ciąg Soundex może wyglądać podobnie, ale nie dokładnie tak samo.
Ten artykuł zawiera kilka przykładów Soundex, aby zademonstrować, jak SOUNDEX() funkcja działa w MySQL.
Składnia
Najpierw spójrzmy na składnię:
SOUNDEX(str)
Gdzie str jest ciągiem, do którego potrzebujesz ciągu Soundex.
Przykład
Oto przykład pobierania ciągu Soundex z ciągu:
SELECT SOUNDEX('Sure'); Wynik:
+-----------------+
| SOUNDEX('Sure') |
+-----------------+
| S600 |
+-----------------+
W tym przypadku słowo Sure ma ciąg Soundex S600 .
Przykład — dopasowanie ścisłe
Oto przykład, w którym dwa słowa brzmią tak samo (lub bardzo podobnie), a zatem mają ten sam ciąg Soundex:
SELECT
SOUNDEX('Sure') AS Sure,
SOUNDEX('Shore') AS Shore; Wynik:
+------+-------+ | Sure | Shore | +------+-------+ | S600 | S600 | +------+-------+
Oto kilka przykładów dopasowania ścisłego:
SELECT
SOUNDEX('Dam') AS Dam,
SOUNDEX('Damn') AS Damn,
SOUNDEX('Too') AS Too,
SOUNDEX('Two') AS Two; Wynik:
+------+------+------+------+ | Dam | Damn | Too | Two | +------+------+------+------+ | D500 | D500 | T000 | T000 | +------+------+------+------+
Przykład — niedopasowanie
Oto przykład, w którym dwa słowa nie brzmią tak samo, a zatem mają różne ciągi Soundex:
SELECT
SOUNDEX('Water') AS Water,
SOUNDEX('Coffee') AS Coffee; Wynik:
+-------+--------+ | Water | Coffee | +-------+--------+ | W360 | C100 | +-------+--------+
Jak widać, ciąg Soundex jest zupełnie inny dla tych dwóch słów.
Przykład – różne pisownie
Oto przykład dwóch słów, które mają różną pisownię (w zależności od kraju, z którego pochodzisz):
SELECT
SOUNDEX('Color') AS 'Color',
SOUNDEX('Colour') AS 'Colour'; Wynik:
+-------+--------+ | Color | Colour | +-------+--------+ | C460 | C460 | +-------+--------+
Widzimy więc, że takie słowa będą miały ten sam ciąg Soundex (o ile są wymawiane w ten sam sposób).
Przykład – ten sam dźwięk, inny dźwięk
Zdarzają się przypadki, w których słowa brzmią tak samo, ale mają różne struny Soundex. Najczęstszym powodem jest to, że zaczynają się od innej litery, z których jedna jest cicha. Być może zauważyłeś z poprzednich przykładów, że ciąg Soundex zaczyna się od pierwszej litery ciągu.
Dlatego jeśli masz dwa słowa, które są wymawiane dokładnie tak samo, ale zaczynają się od innej litery, będą miały inny ciąg Soundex.
Oto kilka przykładów:
SELECT
SOUNDEX('Hole') AS 'Hole',
SOUNDEX('Whole') AS 'Whole',
SOUNDEX('Our') AS Our,
SOUNDEX('Hour') AS Hour; Wynik:
+------+-------+------+------+ | Hole | Whole | Our | Hour | +------+-------+------+------+ | H400 | W400 | O600 | H600 | +------+-------+------+------+
Pary w tym przykładzie mają różne ciągi Soundex tylko dlatego, że ich pierwsza litera jest inna.
Przykład – Soundex w zapytaniu do bazy danych
Oto przykład użycia SOUNDEX() w zapytaniu do bazy danych. W tym przypadku szukamy płyt, które brzmią jak „Ay See Dee Ci”:
SELECT ArtistName
FROM Artists
WHERE SOUNDEX(ArtistName) = SOUNDEX('Ay See Dee Ci'); Wynik:
+------------+ | ArtistName | +------------+ | AC/DC | +------------+
Więc AC/DC najwyraźniej ma ten sam kod Soundex co Ay See Dee Ci (przynajmniej w przypadku korzystania z MySQL) Dla pewności, oto kody Soundex dla obu tych ciągów:
SELECT
SOUNDEX('AC/DC') AS 'AC/DC',
SOUNDEX('Ay See Dee Ci') AS 'Ay See Dee Ci'; Wynik:
+-------+---------------+ | AC/DC | Ay See Dee Ci | +-------+---------------+ | A232 | A232 | +-------+---------------+
Alternatywa:BRZMI JAK
Alternatywne zapytanie mogło zostać utworzone za pomocą SOUNDS LIKE zamiast SOUNDEX() funkcjonować. Tak:
SELECT ArtistName FROM Artists WHERE ArtistName SOUNDS LIKE 'Ay See Dee Ci';
Wynik:
+------------+ | ArtistName | +------------+ | AC/DC | +------------+