Помощник
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]() |
![]()
Сообщение
#1
|
|
Опытный![]() Группа: Бета-тестеры Сообщений: 705 Регистрация: 2009-06-02 Из: Житомир Репутация: ![]() ![]() Всего: 11 ![]() |
Доброго времени суток.
Случился на роботе трабл с мускулом (интернет провайдер, оплата по скретч картам). По моей вине "случайно" испортились данные в одной табличке в одном столбце. Теперь начальство чуть ли не СБУ мне угрожает если не исправлю (доступ к ssh и db я получил незаконно). Есть две таблицы: 1. cards (с полями id, code, create_date, used_date) 2. pay_history (с полями id, user, code, pay_date(поле с неправильными датами по моей вине) ) Нужно обновить даные с первой таблицы во вторую соответственно code Пример: Первая таблица: id | code | create_date | used_date 1 | 12345 | 2011-01-01 23:59:59 | 2011-04-02 21:39:12 2 | 12355 | 2011-01-01 23:59:59 | 2011-03-06 10:09:11 Вторая таблица: id | user | code | pay_date 30 | 233 | 12355 | 0000-00-00 00:00:00 31 | 122 | 12345 | 0000-00-00 00:00:00 После запроса должны получить Вторая таблица: id | user | code | pay_date 30 | 233 | 12355 | 2011-03-06 10:09:11 31 | 122 | 12345 | 2011-04-02 21:39:12 [b]Тоесть чтобы при совпадении кодов дата изменилась на правильную.[/b] Помогите плиз... ![]() Сообщение отредактировал termit - 2012-01-13, 3:16 |
|
|
||
![]() |
![]()
Сообщение
#2
|
|
Любитель![]() Группа: Eleanor user Сообщений: 463 Регистрация: 2010-10-17 Репутация: ![]() ![]() Всего: нет ![]() |
В таких случаях пользуюсь ETL устройством Pentaho мощная штука. Хотя мне кажется в таком случае проще будет через пхп. Вынимаем код и дату одним запросом. Потом через цикл идём и вставляем данные
'UPDATE `вторую таблицу` SET `pay_date`=Данные из первого запроса WHERE `code`= code из первого запроса может ошибаюсь а скорую руку подумал |
|
|
||
![]() |
![]()
Сообщение
#3
|
|
Опытный![]() Группа: Бета-тестеры Сообщений: 705 Регистрация: 2009-06-02 Из: Житомир Репутация: ![]() ![]() Всего: 11 ![]() |
Спасибо, за совет, совсем забыл про php)
|
|
|
||
![]() |
![]()
Сообщение
#4
|
|
Профессионал![]() Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: ![]() ![]() Всего: нет ![]() |
|
|
|
||
![]() |
![]()
Сообщение
#5
|
|
Опытный![]() Группа: Бета-тестеры Сообщений: 705 Регистрация: 2009-06-02 Из: Житомир Репутация: ![]() ![]() Всего: 11 ![]() |
В том смысле что работал напрямую с мускулом, через ssh, все скрипты на перле(который я плохо знаю).
![]() |
|
|
||
![]() |
![]()
Сообщение
#6
|
|
Eleanor developer![]() Группа: Администраторы Сообщений: 5 262 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: ![]() ![]() Всего: 67 ![]() |
|
|
|
||
![]() |
![]()
Сообщение
#7
|
|
Опытный![]() Группа: Бета-тестеры Сообщений: 705 Регистрация: 2009-06-02 Из: Житомир Репутация: ![]() ![]() Всего: 11 ![]() |
Спс. Поставил бы плюс, но увы) +1 |
|
|
||
![]() |
![]()
Сообщение
#8
|
|
Eleanor developer![]() Группа: Администраторы Сообщений: 5 262 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: ![]() ![]() Всего: 67 ![]() |
termit, достаточно просто сказать "благодарю"
![]() |
|
|
||
![]() |
![]()
Сообщение
#9
|
|
Опытный![]() Группа: Бета-тестеры Сообщений: 705 Регистрация: 2009-06-02 Из: Житомир Репутация: ![]() ![]() Всего: 11 ![]() |
Не стал плодить тем.
Как после Инсерт запроса можно узнать значение автоинкремента? Я полагаю что что можно использовать после инсерт запроса, селект с count(`id`). Только смущает что, между этими запросами может добавится ещё пару записей в таблицу. |
|
|
||
![]() |
![]()
Сообщение
#10
|
|
Опытный![]() Группа: Бета-тестеры Сообщений: 705 Регистрация: 2009-06-02 Из: Житомир Репутация: ![]() ![]() Всего: 11 ![]() |
mysql_insert_id результата не даёт.
Internal Server Error mysql_insert_id(): No such file or directory |
|
|
||
![]() |
![]()
Сообщение
#11
|
|
Профессионал![]() Группа: Eleanor user Сообщений: 1 161 Регистрация: 2010-04-19 Репутация: ![]() ![]() Всего: нет ![]() |
Насколько я знаю (может и вру), но как-то так: $id=Db->Insert(); после этого $id+1 и есть значение автоинкремента. |
|
|
||
![]() |
![]()
Сообщение
#12
|
|
Любитель![]() Группа: Eleanor user Сообщений: 278 Регистрация: 2011-11-09 Репутация: ![]() ![]() Всего: нет ![]() |
Может есть ORACLЁвый аналог функции RETURNIG, используемый в запросах.
|
|
|
||
![]() |
![]()
Сообщение
#13
|
|
Любитель![]() Группа: Eleanor user Сообщений: 278 Регистрация: 2011-11-09 Репутация: ![]() ![]() Всего: нет ![]() |
Вот, что говорит документация по MySQL:
Цитата Using LAST_INSERT_ID() and AUTO_INCREMENT columns simultaneously from multiple clients is perfectly valid. Each client will receive the last inserted ID for the last statement that client executed. |
|
|
||
![]() |
![]()
Сообщение
#14
|
|
Опытный![]() Группа: Бета-тестеры Сообщений: 705 Регистрация: 2009-06-02 Из: Житомир Репутация: ![]() ![]() Всего: 11 ![]() |
LuxCore, Loader, Спасибо огромное за помощь, Правда забыл упомянуть что это не для элеанорки, а так, пргосто для FatFree Framework. Маны по php и мускулу читал, но чтото не работало. Нашёл в доках ко FatFree Framework
Ребят, сори что не обьяснил конкретную ситуацию и поставил вопрос в лоб... |
|
|
||
![]() |
![]()
Сообщение
#15
|
|
Любитель![]() Группа: Eleanor user Сообщений: 278 Регистрация: 2011-11-09 Репутация: ![]() ![]() Всего: нет ![]() |
Не за что, termit.
|
|
|
||
![]() |
![]()
Сообщение
#16
|
|
Опытный![]() Группа: Бета-тестеры Сообщений: 705 Регистрация: 2009-06-02 Из: Житомир Репутация: ![]() ![]() Всего: 11 ![]() |
Опять, у меня проблемы с мускулом, выручайте)
Вот уже около часу бьюсь головой об одну вроде небольшую проблему. Нужно обновить данные одним запросом в одной таблице. Ну или упростить это:
Пытался следующим образом
В любом случае обновляется только одна запись, а нужно что бы во всех перечисленых установелось одниковое значение для конкретного поля. Надеюсь понятно объяснился… Сообщение отредактировал termit - 2012-08-08, 3:05 |
|
|
||
![]() |
![]()
Сообщение
#17
|
|
Любитель![]() Группа: Eleanor user Сообщений: 278 Регистрация: 2011-11-09 Репутация: ![]() ![]() Всего: нет ![]() |
Что-то мне подсказывает, что OR нужно заменить на AND
|
|
|
||
![]() |
![]()
Сообщение
#18
|
|
Опытный![]() Группа: Бета-тестеры Сообщений: 705 Регистрация: 2009-06-02 Из: Житомир Репутация: ![]() ![]() Всего: 11 ![]() |
Результат аналогичный. обновляется только одна запись.
|
|
|
||
![]() |
![]()
Сообщение
#19
|
|
Опытный![]() Группа: Бета-тестеры Сообщений: 705 Регистрация: 2009-06-02 Из: Житомир Репутация: ![]() ![]() Всего: 11 ![]() |
почемуто в phpmyadmin при редактировании нескольких строк одновременно используется инсерт вместо упдейт…
INSERT INTO `table` (`id` ,`field`) VALUES ('1', '0'), ('2', '0'), ('100500', '0'); |
|
|
||
![]() ![]() |
![]() |
Текстовая версия | ![]() ![]() ![]() ![]() |