Перемещение значения из одного поля в другое в файле SQL - PullRequest
0 голосов
/ 14 января 2010

В моей базе данных есть столбец с именем 'description' в этом поле. В начале описания указан возраст, например: "Возраст 4+. Это описание этой строки в таблице".

Я создал столбец с именем age и пытался найти способ перенести возраст из описания в одной строке в соответствующий столбец age.

Как мне перейти от:

| id |   description   | age |
------------------------------------------------   
|  1 |  Age 4+ This... |     |
|  2 |  Age 7+ Once... |     |

Кому:

| id |   description   | age |
------------------------------------------------   
|  1 |  This...        |  4+ |
|  2 |  Once...        |  7+ |

Также: не каждая строка имеет возраст в описании, но любая строка, имеющая возраст, имеет формат: 'Возраст x +'.

РЕДАКТИРОВАТЬ: Извините, я забыл добавить, что база данных MySQL 5.0.51a

1 Ответ

0 голосов
/ 14 января 2010

Используя Sql Server, вы можете попробовать что-то вроде

DECLARE @Table TABLE(
        ID INT,
        [description] VARCHAR(100),
        Age VARCHAR(10)
)

INSERT INTO @Table (ID, [description]) SELECT 1, 'Age 4+ This...'
INSERT INTO @Table (ID, [description]) SELECT 2, 'Age 7+ Once...'
INSERT INTO @Table (ID, [description]) SELECT 3, 'Foo...'

UPDATE @Table
SET [description] = REPLACE([description],LEFT([description],CHARINDEX(' ', [description], CHARINDEX(' ',[description])+1)), ''),
    Age = REPLACE(LEFT([description],CHARINDEX(' ', [description], CHARINDEX(' ',[description])+1)), 'Age ', '')
WHERE LEFT([description], 4) = 'Age '

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