Как извлечь определенные элементы из атрибута базы данных и связать их с первичным ключом? - PullRequest
2 голосов
/ 26 июня 2019
CREATE TABLE `user` (
  `user_id` int NOT NULL,
  `name` varchar(50) NOT NULL,
  `hobby` varchar(50) #optional, hobby is always written in hashtags 
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

INSERT INTO `user` (`user_id`, `name`, `hobby`)
('148723', 'max', 'random text #football'),
('578294', 'john', 'random text2'),
...

Я хочу создать таблицу только с идентификатором и хобби, вот так:

('148723', '#football')
...

Есть ли способ сделать это в MySQL или мне нужно использовать Python?Заранее спасибо.

1 Ответ

1 голос
/ 26 июня 2019

Вы должны создать новую таблицу. user_and_hobby

CREATE TABLE `user_and_hobby` (
  `user_id` int NOT NULL,
  `hobby` varchar(50) 
);

затем импортируйте данные из другой таблицы. user

INSERT INTO `user_and_hobby` (`user_id`, `hobby`)
    SELECT user_id, concat('#',SUBSTRING_INDEX(hobby, "#", -1))
    FROM user
    WHERE hobby LIKE "%#%"

Для получения дополнительной информации о insert + select вы можете найти здесь .

Полагаю, у вас есть только один хэштег для хобби, если это не так, измените вопрос, указав все возможные случаи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...