Mysql
 sql >> база данни >  >> RDS >> Mysql

Примери за MySQL SOUNDEX().

Една от многото MySQL низови функции е SOUNDEX() функция. Тази функция връща Soundex низ от даден низ. Ако две думи звучат еднакво, те трябва да имат същия низ на Soundex. Ако две думи звучат сходно, но не съвсем еднакво, техният низ на Soundex може да изглежда подобно, но не съвсем същото.

Тази статия съдържа куп примери за Soundex, за да демонстрира как SOUNDEX() функцията работи в MySQL.

Синтаксис

Първо, нека разгледаме синтаксиса:

SOUNDEX(str)

Където str е низът, към който се нуждаете от Soundex низ.

Пример

Ето пример за извличане на Soundex низ от низ:

ИЗБЕРЕТЕ SOUNDEX('Разбира се');

Резултат:

+-----------------+| SOUNDEX('Разбира се') |+----------------+| S600 |+-----------------+

Така че в този случай думата Sure има низ на Soundex от S600 .

Пример – Точно съвпадение

Ето пример за това, когато две думи звучат еднакво (или много сходно) и следователно споделят един и същ низ на Soundex:

ИЗБЕРЕТЕ SOUNDEX('Sure') КАТО Разбира се, SOUNDEX('Shore') AS Shore;

Резултат:

+------+-------+| Разбира се | Брег |+------+-------+| S600 | S600 |+------+-------+

Ето още няколко примера за точно съвпадение:

ИЗБЕРЕТЕ SOUNDEX('Dam') КАТО Dam, SOUNDEX('Damn') КАТО DAMEN, SOUNDEX('Too') КАТО също, SOUNDEX('Two') КАТО две;

Резултат:

+------+------+------+------+| Язовир | По дяволите | Твърде | Две |+------+------+------+------+| D500 | D500 | T000 | T000 |+------+------+------+------+

Пример – Несъответствие

Ето пример за това, когато две думи не звучат еднакво и следователно имат различни струни на Soundex:

ИЗБЕРЕТЕ SOUNDEX('Вода') КАТО вода, SOUNDEX('Кафе') КАТО кафе;

Резултат:

<пред>+-------+-------+| Вода | Кафе |+-------+-------+| W360 | C100 |+-------+-------+

Както можете да видите, низът на Soundex е напълно различен за тези две думи.

Пример – Различни правописи

Ето пример за две думи, които имат различен правопис (в зависимост от това от коя държава сте):

ИЗБЕРЕТЕ SOUNDEX('Цвят') КАТО 'Цвят', SOUNDEX('Цвят') КАТО 'Цвят';

Резултат:

<пред>+-------+-------+| Цвят | Цвят |+-------+-------+| C460 | C460 |+-------+-------+

Така че можем да видим, че такива думи ще споделят един и същ низ на Soundex (стига да се произнасят по същия начин).

Пример – Същият звук, различен Soundex

Има случаи, когато думите звучат еднакво, но имат различни струни на Soundex. Най-честата причина за това е, че те започват с различна буква, едната от които е мълчалива. Може да сте забелязали от предишните примери, че низът на Soundex започва с първата буква на низа.

Следователно, ако имате две думи, които се произнасят абсолютно еднакво, но започват с различна буква, те ще имат различен низ на Soundex.

Ето няколко примера:

ИЗБЕРЕТЕ SOUNDEX('Hole') КАТО 'Дупка', SOUNDEX('Whole') КАТО 'Цяло', SOUNDEX('Our') КАТО НАШ, SOUNDEX('Hour') КАТО час;

Резултат:

+------+-------+------+------+| Дупка | Цяло | Нашите | Час |+------+-------+------+-----+| H400 | W400 | O600 | H600 |+------+-------+------+------+

Двойките в този пример имат различни струни на Soundex само защото първата им буква е различна.

Пример – Soundex в заявка за база данни

Ето пример за използване на SOUNDEX() в заявка за база данни. В този случай търсим записи, които звучат като „Ay See Dee Ci“:

ИЗБЕРЕТЕ Име на изпълнител ОТ ИзпълнителиWHERE SOUNDEX(Име на изпълнител) =SOUNDEX('Ay See Dee Ci');

Резултат:

+-----------+| Име на изпълнител |+------------+| AC/DC |+-----------+

Така че AC/DC очевидно има същия Soundex код като Ay See Dee Ci (поне когато използвате MySQL) Само за да сме сигурни, ето Soundex кодовете и за двата низа:

ИЗБЕРЕТЕ SOUNDEX('AC/DC') КАТО 'AC/DC', SOUNDEX('Ay See Dee Ci') КАТО 'Ay See Dee Ci';

Резултат:

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

Алтернатива:ЗВУЧИ КАТО

Алтернативна заявка може да бъде изградена с помощта на SOUNDS LIKE вместо SOUNDEX() функция. Като това:

ИЗБЕРЕТЕ име на изпълнител ОТ ИЗПЪЛНИТЕЛИ, КЪДЕИМЕ на изпълнител ЗВУЧИ КАТО „Ay See Dee Ci“;

Резултат:

+-----------+| Име на изпълнител |+------------+| 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. Създайте bash скрипт за наблюдение на заявки MySQL

  2. Грешка в MySQL при задаване на стойност по подразбиране за DATE или DATETIME

  3. count(*) и count(column_name), каква е разликата?

  4. SUBDATE() Примери – MySQL

  5. Как да поправя сериализиран низ, който е повреден от неправилна дължина на броя на байтовете?