sql >> Databasteknik >  >> RDS >> Mysql

MySQL SOUNDEX() Exempel

En av de många MySQL-strängfunktionerna är SOUNDEX() fungera. Denna funktion returnerar en Soundex-sträng från en given sträng. Om två ord låter likadana bör de ha samma Soundex-sträng. Om två ord låter lika, men inte exakt likadana, kan deras Soundex-sträng se likadana ut men inte exakt likadana.

Den här artikeln innehåller ett gäng Soundex-exempel för att visa hur SOUNDEX() funktionen fungerar i MySQL.

Syntax

Låt oss först titta på syntaxen:

SOUNDEX(str)

Där str är strängen som du behöver Soundex-strängen till.

Exempel

Här är ett exempel på att hämta Soundex-strängen från en sträng:

SELECT SOUNDEX('Sure');

Resultat:

+-----------------+
| SOUNDEX('Sure') |
+-----------------+
| S600            |
+-----------------+

Så i det här fallet ordet Sure har en Soundex-sträng på S600 .

Exempel – Exakt matchning

Här är ett exempel på där två ord låter likadana (eller mycket lika), och därför delar de samma Soundex-sträng:

SELECT 
    SOUNDEX('Sure') AS Sure, 
    SOUNDEX('Shore') AS Shore;

Resultat:

+------+-------+
| Sure | Shore |
+------+-------+
| S600 | S600  |
+------+-------+

Här är några exempel på mer exakt matchning:

SELECT 
    SOUNDEX('Dam') AS Dam,
    SOUNDEX('Damn') AS Damn,
    SOUNDEX('Too') AS Too,
    SOUNDEX('Two') AS Two;

Resultat:

+------+------+------+------+
| Dam  | Damn | Too  | Two  |
+------+------+------+------+
| D500 | D500 | T000 | T000 |
+------+------+------+------+

Exempel – Icke matchande

Här är ett exempel på där två ord inte låter likadana, och därför har de olika Soundex-strängar:

SELECT 
    SOUNDEX('Water') AS Water, 
    SOUNDEX('Coffee') AS Coffee;

Resultat:

+-------+--------+
| Water | Coffee |
+-------+--------+
| W360  | C100   |
+-------+--------+

Som du kan se är Soundex-strängen helt annorlunda för dessa två ord.

Exempel – Olika stavningar

Här är ett exempel på två ord som har olika stavningar (beroende på vilket land du kommer från):

SELECT 
  SOUNDEX('Color') AS 'Color',
  SOUNDEX('Colour') AS 'Colour';

Resultat:

+-------+--------+
| Color | Colour |
+-------+--------+
| C460  | C460   |
+-------+--------+

Så vi kan se att sådana ord kommer att dela samma Soundex-sträng (så länge de uttalas på samma sätt).

Exempel – Samma ljud, olika ljudex

Det finns fall där ord låter lika, men de har olika Soundex-strängar. Den vanligaste orsaken till detta är att de börjar med en annan bokstav, varav en är en tyst bokstav. Du kanske har märkt från de tidigare exemplen att Soundex-strängen börjar med den första bokstaven i strängen.

Därför, om du har två ord som uttalas exakt lika, men de börjar med en annan bokstav, kommer de att ha en annan Soundex-sträng.

Här är några exempel:

SELECT
    SOUNDEX('Hole') AS 'Hole',
    SOUNDEX('Whole') AS 'Whole',
    SOUNDEX('Our') AS Our,
    SOUNDEX('Hour') AS Hour;

Resultat:

+------+-------+------+------+
| Hole | Whole | Our  | Hour |
+------+-------+------+------+
| H400 | W400  | O600 | H600 |
+------+-------+------+------+

Paren i det här exemplet har olika Soundex-strängar enbart för att deras första bokstav är annorlunda.

Exempel – Soundex i en databasfråga

Här är ett exempel på hur du använder SOUNDEX() i en databasfråga. I det här fallet letar vi efter alla skivor som låter som "Ay See Dee Ci":

SELECT ArtistName 
FROM Artists
WHERE SOUNDEX(ArtistName) = SOUNDEX('Ay See Dee Ci');

Resultat:

+------------+
| ArtistName |
+------------+
| AC/DC      |
+------------+

Alltså AC/DC har tydligen samma Soundex-kod som Ay See Dee Ci (åtminstone när du använder MySQL) Bara för att vara säker, här är Soundex-koderna för båda dessa strängar:

SELECT 
  SOUNDEX('AC/DC') AS 'AC/DC',
  SOUNDEX('Ay See Dee Ci') AS 'Ay See Dee Ci';

Resultat:

+-------+---------------+
| AC/DC | Ay See Dee Ci |
+-------+---------------+
| A232  | A232          |
+-------+---------------+

Ett alternativ:LÅTER SOM

En alternativ fråga kunde ha konstruerats med SOUNDS LIKE istället för SOUNDEX() fungera. Så här:

SELECT ArtistName FROM Artists
WHERE ArtistName SOUNDS LIKE 'Ay See Dee Ci';

Resultat:

+------------+
| ArtistName |
+------------+
| AC/DC      |
+------------+

  1. Hur man ställer in fjärranslutning till PostgreSQL

  2. Hur man hämtar två kolumndata i A,B-format i Oracle

  3. GI 19c RPM Package Manager Database

  4. Fördelar och nackdelar med att implementera en hybrid molnmiljö