Как искать 3 буквы слова в столбце - MySQL? - PullRequest
1 голос
/ 26 марта 2010

У меня есть столбец «Заголовок» с аббревиатурами (Ceo, Cio, ..), который я должен использовать для своей выгоды.Какой самый эффективный способ найти 3 буквенных слова и использовать их с заглавной буквы?

Пример данных:

Title
-----------------------
Vp - business, Cio, Ceo
E Vp, Cfo
Ceo
Cio
Vp

Спасибо большое!

Ответы [ 2 ]

1 голос
/ 26 марта 2010

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

Для части SQL вы можете использовать регулярное выражение :

SELECT *
FROM table1
WHERE Title RLIKE '[[:<:]]ceo[[:>:]]'
   OR Title RLIKE '[[:<:]]vp[[:>:]]'
   OR ...

Если вы просто хотите найти все трехбуквенные слова, как следует из названия, используйте это:

WHERE Title RLIKE '[[:<:]][[:alpha:]]{3}[[:>:]]'
1 голос
/ 26 марта 2010
UPDATE roles SET
title = UPPER(title)

Я запутался в требовании 3-х букв. Почему бы «Vp» не получить заглавные буквы? Если вам это действительно нужно:

WHERE LENGTH(title) = 3

EDIT

В ответ на ваш комментарий ниже:

UPDATE roles SET
title = REPLACE(title, 'Ceo', 'CEO')

Вам нужно будет выполнить этот запрос для каждого трехбуквенного слова.

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