Извлечение кодов Soundex из столбца данных в mysql

#mysql #sql #phpmyadmin

Вопрос:

можно ли сделать такой запрос в SQL: есть столбец с именами, скажем, FirstName, вам нужно получить код soundex для каждого имени в столбце и записать эти коды в столбец FirstNamesdx?

Комментарии:

1. Если функция SOUNDEX() реализована в вашей СУБД, то это возможно.

2. да, у меня есть это, но, к сожалению, у меня проблема с созданием запроса

Ответ №1:

Ты пытаешься сделать что-то подобное:

 CREATE TABLE test_tbl(
             first_name VARCHAR(50),
             FirstNamesdx VARCHAR(50)
                     );

insert into test_tbl(first_name) values ('Earbuds'),
                                        ('Phone'),
                                        ('Charger'),
                                        ('Data Cable'),
                                        ('Speakers');
 

Затем вы можете использовать обновление с той же таблицей, чтобы получить необходимые значения:

 update test_tbl a
inner join 
( select first_name, SOUNDEX(first_name) as soundex_first_name 
  from test_tbl
) as b
on a.first_name=b.first_name
set a.FirstNamesdx=b.soundex_first_name;
 

У тебя есть легкий путь:

 update test_tbl
set FirstNamesdx= SOUNDEX(first_name);
 

Демо: https://www.db-fiddle.com/f/pB6b5xrgPKCivFWcpQHsyE/8

Результаты: введите описание изображения здесь

Комментарии:

1. Подзапрос — это излишество.

2. @Akina, да update test_tbl set FirstNamesdx= SOUNDEX(first_name); . Я не думал об этом

3. Спасибо вам, ребята, это работает!