Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Przykłady MySQL SOUNDEX()

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co to jest ten operator <=> w MySQL?

  2. Jak mogę połączyć się z MySQL w Pythonie 3 w systemie Windows?

  3. Mysql Popraw wydajność wyszukiwania za pomocą symboli wieloznacznych (%%)

  4. Policz z warunkiem IF w zapytaniu MySQL

  5. Jak zainicjować bazę danych MySQL ze schematem w kontenerze Docker?