Помогите перенести данные из одного поля в Mysql в другой

Статус
В этой теме нельзя размещать новые ответы.
Регистрация
3 Фев 2009
Сообщения
157
Реакции
2
Добрый день.
У меня в БД в таблице {pref}_news есть 2 поля: top_news и imp. Мне нужно удалить поле top_news, а его данные перенести в поле imp.
Сначала я подумал, что чем переносить данные (что я не умею делать) я просто удалил поле imp, а далее поменял название и структуру поля top_news в imp (в phpmyadmin справа от названия поля нажал на Изменить, поменял название и в enum сделал '0','1'). Но все данные поля исчезли.
Как мне перенести данные поля top_news в поле imp, чтобы при этом не удалялись данные поля?
Вторая проблема в том, что структура полей тоже отличается. Имею в виду enum('yes','no') и enum('0','1').

`top_news` enum('yes','no') NOT NULL DEFAULT 'no',
`imp` enum('0','1') NOT NULL DEFAULT '0',

Мне нужно чтобы все данные из поля top_news перенеслись в поле imp, но с enum('0','1').
Помоги пожалуйста.
 
UPDATE my_table a
JOIN my_table b ON a.id = b.id
SET a.imp = IF ( b.top_news = 'yes', 1, 0 );

ALTER TABLE my_table DROP top_news;

id - какое-нибудь уникальное поле.. auto_increment, например..
 
Последнее редактирование:
Спасибо за быстрый ответ. Сделал запрос. Поле imp приняло вид
`imp` enum('yes','no') NOT NULL DEFAULT '0',
и естественно все новости встали по дефолту (тоесть с 0). А мне нужно, чтобы поле imp не меняло свою структуру, а новости в которых указано:
top_news yes
было
imp 1
____________

top_news no
было
imp 0

===============
только что увидел Ваш второй ответ. Его еще не пробовал. Попробую отпишусь.
 
отредактировал.. каюсь, сразу в вопрос не вкурил, прочитал по диагонали..

зы.. дропать поле - на ваше усмотрение..
 
залил базу из бекапа и снова сделал запрос:

UPDATE 055_news a
JOIN 055_news b ON a.28 = b.27
SET a.imp = IF ( b.top_news = 'yes', 1, 0 );
ALTER TABLE 055_news DROP top_news;

вышла ошибка:

SQL-запрос:

UPDATE 055_news a JOIN 055_news b ON a.28 = b.27 SET a.imp = IF( b.top_news = 'yes', 1, 0 ) ;

Ответ MySQL: Для просмотра ссылки Войди или Зарегистрируйся

#1054 - Unknown column 'a.28' in 'on clause'

у меня id поля top_news 27, а поля imp 28
 
структуру таблицы приведите..

зы.. ваш скриншот не открывается.. cpanel не пускает.. ))

а зачем это: ON a.28 = b.27 ?.. субд сама свяжет.. при этом id будут одинаковы..

тогда уж WHERE a.id = 28


> у меня id поля top_news 27, а поля imp 28
гм.. это не параллельный перенос?..
 
Последнее редактирование:
pole.gif


obzor.gif
 
Последнее редактирование:
я так понял, что id нужно указывать.
Вы пожалуйста напишите точный запрос (каким он должен быть), так как мне немного трудно понять то на что менять.
 
так он тут Для просмотра ссылки Войди или Зарегистрируйся ..

зы.. ох.. схему таблицы вы так и не привели.. может удаленку в личку кинете.. сам всё быстро сделаю..
 
так он тут Для просмотра ссылки Войди или Зарегистрируйся ..

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

UPDATE 055_news a
JOIN 055_news b ON a.id = b.id
SET a.imp = IF ( b.top_news = 'yes', 1, 0 );
ALTER TABLE 055_news DROP top_news;

вышла ошибка:

SQL-запрос:

UPDATE 055_news a JOIN 055_news b ON a.id = b.id SET a.imp = IF( b.top_news = 'yes', 1, 0 ) ;

Ответ MySQL: Документация
#1054 - Unknown column 'a.id' in 'on clause'

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