MySQL - запрос на перемещение части содержимого 1 поля в новое поле - PullRequest
2 голосов
/ 27 октября 2009

У меня есть таблица с именем cartypes, которая в настоящее время имеет 2 поля: id и type. Я добавляю подтип и хочу переместить содержимое после тире - из поля с именем type и поместить это содержимое в подтип. Избавление от тире (любые дополнительные пробелы тоже в этом отношении). Какой лучший SQL-запрос для этого?

перед:

id        type                                      subtype (currently empty)
------------------------------------------------------------------------------
1     legendary muscle car  - steel          
2     crappy sedan - plasticky interior
3     legendary sports car  - aluminum bodywork
4     compact car

после

id        type                     subtype
---------------------------------------------------------------
1     legendary muscle car        steel          
2     crappy sedan                plasticky interior
3     legendary sports car        aluminum bodywork
4     compact car

Ответы [ 2 ]

2 голосов
/ 28 октября 2009
UPDATE table
 SET subtype = TRIM(SUBSTRING(type, LOCATE('-', type) + 1)),
     type = TRIM(SUBSTRING(type, 1, LOCATE('-', type) - 1))
 WHERE type LIKE '%-%';
1 голос
/ 27 октября 2009

Это оператор обновления, включающий два SUBSTR () (по одному для каждого нового столбца) и строку LOCATE () в исходном столбце. Я не очень часто использую MySQL, но этот прием работает везде, только синтаксис строки находит процедуры изменения.

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