Regex и Mysql. Выборка части строки в SELECT.

XtremallyPurpur

Новичок
Regex и Mysql. Выборка части строки в SELECT.

Добрый день.

В таблице есть поле, которое хранит фамилию пользователя и отдел, в котором он работает в виде:

id | username
-------------------------------------
1 | Василий Пупкин (УМТО)

Т.е. при проектировании БД была допущена ошибка: отдел логичнее было бы выделить в отдельный столбец.

Сейчас исправляю ошибку - пытаюсь получить название отдела (то что в скобках) - и в соответствующий записи столбец вставить наименование отдела, чтобы получилось такое:

id | username | dep
---------------------------------------
1 | Василий Пупкин | УМТО

Можно ли это сделать на SQL?

Как можно получить часть строки - ту что в скобках?

что-то вроде:
SELECT username REGEXP "\(.*\)" FROM users

Но это возвращает только результат сравнения username с регой.
 

XtremallyPurpur

Новичок
Бресь Сергей
Спасибо за оперативный ответ.

Получилось выбрать то что в скобках:
SELECT MID(username,(POSITION("(" IN username)+1),(POSITION(")" IN username)-POSITION("(" IN username)-1)) AS M FROM users

И еще вопрос я могу в этом же запросе апдейтнуть строку и записать значение M (из предыдущего запроса) в столбец dep текущей строки?
 

Сергей123

Новичок
Ну, не в этом же. SELECT вообще не нужен, по-моему.
UPDATE users SET
dep = выражениетвоёбезвсякихAS
 
Сверху