2011-06-06 2 views
0

Я не очень хорошо разбираюсь в mysql. Но хотите немного улучшить его, чтобы управлять таблицами без серверных языков.Mysql: Вставьте данные одного столбца в другой

У меня есть один стол и две колонки. Мне нужно выбрать данные из одного столбца и вставить в ту же таблицу, что и строки.

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

Но не знаю, как это сделать.

Может кто-нибудь помочь с простым примером.

Спасибо;)

Обновление стол:

id col1 col2 
1 txt txt4 
2 txt2 txt5 
3 txt3 txt6 

Мне нужно объединить col1 и col2

Окончательный результат:

id col1 
1 txt 
2 txt2 
3 txt3 
4 txt4 
5 txt5 
6 txt6 
+0

Можете ли вы опубликовать пример исходных данных и желаемого результата, чтобы мы могли лучше понять? – Don

+0

Уверенный предмет мат. Готово! :) – Somebody

+0

Просто устал писать этот дерьмо на php, пока я могу сделать это на чистом mysql ... Может ли кто-нибудь предложить хорошую книгу для расширенной обработки данных внутри mysql cmd? спасибо;) – Somebody

ответ

7

Это должно работать

insert into tablename 
(col1_name) 
select (col2_name) from tablename; 

Это будет отображать все ваши данные из столбца 2 и вставлять их в столбец 1 в виде новых строк. Затем, вы можете оставить второй столбец, выполнив:

alter table tablename drop col2_name; 

Просто замените tablename с именем вашей таблицы и имена столбцов с именем вашей колонки. Кроме того, убедитесь, что оба типа данных столбцов совместимы друг с другом.

Удачи вам!

+0

Я бы хотел, чтобы это было так просто :) Получение синтаксической ошибки рядом с выбором – Somebody

+0

Ekhm if remove VALUES from statement. Тогда это работает. Спасибо друг. Работает отлично! ;) Редактировать сообщение и удалить VALUES, чтобы другие не путались. – Somebody

+1

-1, который удвоит количество строк в таблице 'tablename', вместо этого используйте обновление. – Johan

2

Если я правильно читаю, вы хотите объединить col1 и col2 ?? то попробуйте это

alter table table1 add column col3 varchar(255); 

update table1 set col3 = concat(col1, " ", col2); 

alter table table1 drop column col1; 
alter table table1 drop column col2; 
+0

+1, но обратите внимание, что в строгом режиме SQL вы должны ** иметь предложение 'where' в своем заявлении об обновлении. 'update table1 установить col3 = concat (col1," ", col2), где id> 0' выполнит трюк. – Johan

Смежные вопросы