Опубликовано: 6 июня 201213 г Нужно перенести данные с одного столбца в другой, столбцы в разных таблицах. Выполняю запрос:REPLACE INTO принимающая таблица(`принимающий столбец`) SELECT столбец отправитель FROM таблица отправитель Майадмин пишет что действие удачно выполнено. Но результата никакого - данные не заменились.
Опубликовано: 6 июня 201213 г Недостаточно информации. 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 работает по ключу, а ключа у вас, скорее всего, нет.
Опубликовано: 6 июня 201213 г Автор 1. Столбцы уже есть? Да. 2. Другие столбцы в таблице есть?Тоже есть. 3. На чем строится связь между строками таблицы? И есть ли она вообще?Дело в том что у меня стоял мод [EN30] Ajax Thanks v1.0.2, затем обновил до версии 1.0.5. Всё прошло успешно, за исключением того что число выставленного количества благодарностей у юзеров обнулилось. Как оказалось в старой версии мода числовое кол-во спасибо находилось в таблице members (столбец thanked), тогда как в новой версии мода это значение перенесено в таблицу profile_portal (столбец также thanked).Вот я и решил заменить их.
Опубликовано: 6 июня 201213 г Ага, т.е. переносите столбец 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)
Опубликовано: 13 июня 201213 г Автор Ещё один вопрос по запросам к базе.Хочу удалить приватные сообщения которые старше скажем 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 А вот по времени - незнаю как составить.
Опубликовано: 14 июня 201213 г 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 PSibf_message_text в 3х больше нету
Опубликовано: 16 июня 201213 г Автор 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Большущее Спасибо! PSibf_message_text в 3х больше нетуАга. Эта таблица ещё осталась от версии форума 1.3 На днях её снёс.
Опубликовано: 16 июня 201213 г Автор Всё отлично, вот только с таблицы ibf_message_topic_user_map практически ничего не удалено. Как составить запрос только по этой таблице?
Опубликовано: 16 июня 201213 г Автор Значит там ничего больше удалять не нужно. Лучше не трогать.Просто остались пустые маркеры, вот как на скрине:
Опубликовано: 30 мая 20169 г Автор Удалит все ТЕМЫ лс (со всеми сообщениями из них) созданные раньше чем 2012-02-01А можно такой же запрос составить, только что бы в нём было время скажем с 10.02.2015 по 04.01.2016?
Опубликовано: 30 мая 20169 г А можно такой же запрос составить, только что бы в нём было время скажем с 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
Нужно перенести данные с одного столбца в другой, столбцы в разных таблицах. Выполняю запрос:
Майадмин пишет что действие удачно выполнено. Но результата никакого - данные не заменились.