sql >> Databáze >  >> RDS >> Mysql

Jak funguje operátor SOUNDS LIKE v MySQL

V MySQL můžete použít SOUNDS LIKE operátor vrátí výsledky, které zní jako dané slovo.

Tento operátor funguje nejlépe na řetězcích v angličtině (jeho použití s ​​jinými jazyky může vrátit nespolehlivé výsledky).

Syntaxe

Syntaxe vypadá takto:

expr1 SOUNDS LIKE expr2

Kde expr1 a expr2 jsou porovnávané vstupní řetězce.

Tento operátor je ekvivalentem provedení následujícího:

SOUNDEX(expr1) = SOUNDEX(expr2)

Příklad 1 – Základní použití

Zde je příklad použití tohoto operátoru v SELECT prohlášení:

SELECT 'Damn' SOUNDS LIKE 'Dam';

Výsledek:

+--------------------------+
| 'Damn' SOUNDS LIKE 'Dam' |
+--------------------------+
|                        1 |
+--------------------------+

V tomto případě je návratová hodnota 1 což znamená, že dva vstupní řetězce znějí stejně.

Zde je návod, co se stane, pokud vstupní řetězce není zní podobně:

SELECT 'Damn' SOUNDS LIKE 'Cat';

Výsledek:

+--------------------------+
| 'Damn' SOUNDS LIKE 'Cat' |
+--------------------------+
|                        0 |
+--------------------------+

Příklad 2 – ve srovnání s SOUNDEX()

Zde je to porovnáno s SOUNDEX() :

SELECT 
  'Damn' SOUNDS LIKE 'Dam' AS 'SOUNDS LIKE',
  SOUNDEX('Dam') = SOUNDEX('Damn') AS 'SOUNDEX()';

Výsledek:

+-------------+-----------+
| SOUNDS LIKE | SOUNDEX() |
+-------------+-----------+
|           1 |         1 |
+-------------+-----------+

Příklad 3 – Příklad databáze

Zde je příklad toho, jak můžeme tento operátor použít v databázovém dotazu:

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

Výsledek:

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

A zde je to pomocí SOUNDEX() :

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

Výsledek:

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

  1. Jak mohu použít aktuální datum v dotazu HQL s databází Oracle?

  2. Jak Coalesce() funguje v SQLite

  3. Jak řešit problémy s definicí MySQL

  4. Mohu v MySQL zkopírovat jeden řádek pro vložení do stejné tabulky?