Перенос данных с одного столбца в другой - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

sql запросы

Страница 1 из 1

Перенос данных с одного столбца в другой

#1 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 627
  • Регистрация: 14-Июнь 09
  • Репутация: 15
  • IPB version:3.1.x
 

Отправлено 06 Июнь 2012 - 23:16

Нужно перенести данные с одного столбца в другой, столбцы в разных таблицах. Выполняю запрос:
REPLACE INTO принимающая таблица(`принимающий столбец`) SELECT столбец отправитель FROM таблица отправитель


Майадмин пишет что действие удачно выполнено. Но результата никакого - данные не заменились.
0

#2 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 531
  • IPB version:3.4.x
 

Отправлено 06 Июнь 2012 - 23:45

Недостаточно информации.

1. Столбцы уже есть?
2. Другие столбцы в таблице есть?
3. На чем строится связь между строками таблицы? И есть ли она вообще?

В зависимости от ответов запрос может совершенно изменяться от:

UPDATE table1 t1 SET t1.column1 = (SELECT t2.column2 FROM table2 t2 WHERE t2.id = t1.id)


до:

INSERT INTO table1 SELECT * FROM table2


Ваш запрос не выполняется, т.к. REPLACE работает по ключу, а ключа у вас, скорее всего, нет.
0

#3 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 627
  • Регистрация: 14-Июнь 09
  • Репутация: 15
  • IPB version:3.1.x
 

Отправлено 06 Июнь 2012 - 23:58

Цитата

1. Столбцы уже есть?

Да.

Цитата

2. Другие столбцы в таблице есть?

Тоже есть.

Цитата

3. На чем строится связь между строками таблицы? И есть ли она вообще?

Дело в том что у меня стоял мод [EN30] Ajax Thanks v1.0.2, затем обновил до версии 1.0.5. Всё прошло успешно, за исключением того что число выставленного количества благодарностей у юзеров обнулилось. Как оказалось в старой версии мода числовое кол-во спасибо находилось в таблице members (столбец thanked), тогда как в новой версии мода это значение перенесено в таблицу profile_portal (столбец также thanked).
Вот я и решил заменить их.
0

#4 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 531
  • IPB version:3.4.x
 

Отправлено 07 Июнь 2012 - 00:06

Ага, т.е. переносите столбец thanked из members в profile_portal.

Тогда запрос такой:

UPDATE profile_portal pp SET pp.thanked = (SELECT m.thanked FROM members m WHERE m.member_id = pp.pp_member_id)

2

#5 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 627
  • Регистрация: 14-Июнь 09
  • Репутация: 15
  • IPB version:3.1.x
 

Отправлено 07 Июнь 2012 - 00:13

Ritsuka,
Вчера вы меня спасли и сегодня. Спасибо большое.
0

#6 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 627
  • Регистрация: 14-Июнь 09
  • Репутация: 15
  • IPB version:3.1.x
 

Отправлено 13 Июнь 2012 - 23:17

Ещё один вопрос по запросам к базе.
Хочу удалить приватные сообщения которые старше скажем 3 месяцев.
По определённым юзерам запросы составил, и они выполнились:
DELETE FROM ibf_message_posts WHERE msg_author_id=1
DELETE FROM ibf_message_topic_user_map WHERE map_user_id=1
DELETE FROM ibf_message_topics WHERE mt_to_member_id=1
DELETE FROM ibf_message_text WHERE msg_author_id=1


А вот по времени - незнаю как составить.
0

#7 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 698
  • Регистрация: 20-Март 09
  • Репутация: 2 262
  • IPB version:3.1.x
 

Отправлено 14 Июнь 2012 - 21:42

DELETE p.*, um.*, t.* FROM ibf_message_posts p, ibf_message_topic_user_map um, ibf_message_topics t
WHERE t.mt_date < UNIX_TIMESTAMP('2012-02-01') AND p.msg_topic_id=t.mt_id AND um.map_topic_id=t.mt_id



Удалит все ТЕМЫ лс (со всеми сообщениями из них) созданные раньше чем 2012-02-01

PS
ibf_message_text в 3х больше нету
1

#8 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 627
  • Регистрация: 14-Июнь 09
  • Репутация: 15
  • IPB version:3.1.x
 

Отправлено 16 Июнь 2012 - 08:25

Цитата

DELETE p.*, um.*, t.* FROM ibf_message_posts p, ibf_message_topic_user_map um, ibf_message_topics t
WHERE t.mt_date < UNIX_TIMESTAMP('2012-02-01') AND p.msg_topic_id=t.mt_id AND um.map_topic_id=t.mt_id



Удалит все ТЕМЫ лс (со всеми сообщениями из них) созданные раньше чем 2012-02-01

Большущее Спасибо!

Цитата

PS
ibf_message_text в 3х больше нету

Ага. Эта таблица ещё осталась от версии форума 1.3 На днях её снёс.
0

#9 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 627
  • Регистрация: 14-Июнь 09
  • Репутация: 15
  • IPB version:3.1.x
 

Отправлено 16 Июнь 2012 - 11:00

Всё отлично, вот только с таблицы ibf_message_topic_user_map практически ничего не удалено. Как составить запрос только по этой таблице?
0

#10 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 698
  • Регистрация: 20-Март 09
  • Репутация: 2 262
  • IPB version:3.1.x
 

Отправлено 16 Июнь 2012 - 14:00

Значит там ничего больше удалять не нужно. Лучше не трогать.
0

#11 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 627
  • Регистрация: 14-Июнь 09
  • Репутация: 15
  • IPB version:3.1.x
 

Отправлено 16 Июнь 2012 - 14:26

Просмотреть сообщениеsiv1987 16 Июнь 2012 - 14:00 сказал(а):

Значит там ничего больше удалять не нужно. Лучше не трогать.

Просто остались пустые маркеры, вот как на скрине:

Вложений


0

#12 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 627
  • Регистрация: 14-Июнь 09
  • Репутация: 15
  • IPB version:3.1.x
 

Отправлено 30 Май 2016 - 14:49

Просмотреть сообщениеsiv1987 сказал(а):

Удалит все ТЕМЫ лс (со всеми сообщениями из них) созданные раньше чем 2012-02-01

А можно такой же запрос составить, только что бы в нём было время скажем с 10.02.2015 по 04.01.2016?
0

#13 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 814
  • IPB version:I have no IPB
 

Отправлено 30 Май 2016 - 15:20

Просмотреть сообщениеHaktar сказал(а):

А можно такой же запрос составить, только что бы в нём было время скажем с 10.02.2015 по 04.01.2016?

Тут обычное сравнение чисел
Можете так
DELETE p.*, um.*, t.* FROM ibf_message_posts p, ibf_message_topic_user_map um, ibf_message_topics t
WHERE t.mt_date > UNIX_TIMESTAMP('2015-02-10') AND t.mt_date < UNIX_TIMESTAMP('2016-01-04') AND p.msg_topic_id=t.mt_id AND um.map_topic_id=t.mt_id

2

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна