Вы можете использовать SUBSTRING_INDEX
, чтобы извлечь первое слово каждого значения. Например:
SELECT SUBSTRING_INDEX('Wellcare Value (HMO-POS)', ' ', 1) AS name
Выход:
Wellcare
Чтобы добавить это к вашей таблице, у вас есть несколько вариантов. Если вы работаете с MySQL 5.7.6 или новее, вы можете использовать сгенерированный столбец, как описано в этом вопросе и руководстве , например,
ALTER TABLE mytable ADD COLUMN name VARCHAR(50) AS (SUBSTRING_INDEX(details, ' ', 1))
Если вы хотите сохранить память за счет времени выборки, объявите столбец как VIRTUAL
, в противном случае объявите его как STORED
.
Вы также можете создать VIEW
, который включает это выражение в виде столбца. Это похоже на сгенерированный VIRTUAL
столбец, но также будет работать с версиями MySQL, которые не поддерживают сгенерированные столбцы:
CREATE VIEW mytable_view AS
SELECT *, SUBSTRING_INDEX(details, ' ', 1) AS name
FROM mytable
Последний вариант будет состоять в том, чтобы создать фактический столбец и затем обновить его с помощью триггера, но оба предыдущих варианта предпочтительнее.