|
Модераторы: skyboy |
|
maxipub |
|
||||
Опытный Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
Добрый день!
Есть таблица с полями id (AI), и некие data_1, data 2, data_3. Нужно поменять местами информацию в data_1, data 2, data_3 по двум конкретным id. Например:
Меняем местами data_1, data 2, data_3 у id = 1 и id = 3, получаем:
Подскажите, такое можно сделать одним запросом? Заранее огромное спасибо. Это сообщение отредактировал(а) maxipub - 30.12.2015, 18:37 |
||||
|
|||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 453 |
RTFM Multi-table UPDATE Syntax
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
maxipub |
|
||||
Опытный Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
Akina, честно, вчера читал. Читал МАН, читал статьи, читал форумы, искал. Перед созданием темы всегда ищу. Но ничего не понял, и не нашел...
Только что вот еще раз прошелся. Ну кое-что вроде нарисовывается. Просто первый раз с таким сталкиваюсь. Тестировать то буду, но это разработка на работающий проект, поэтому необходимо все сделать с первого раза без скрытых косяков. Таблица:
Запрос:
Вроде работает. Но все ли правильно? |
||||
|
|||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 453 |
Для id UNIQUE - да, всё правильно.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
maxipub |
|
|||
Опытный Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
Круто, я раньше почему-то считал что JOIN только для SELECT. Все намного интересней.
|
|||
|
||||
maxipub |
|
|||
Опытный Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
Ребята, тут возник еще один вопрос по запросу, id - UNIQUE:
Я правильно понимаю, что количество измененных строк всегда будет = только 2 или только 0 (не прошел INNER JOIN или WHERE), или может быть другой вариант, и в каких случаях? |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20570 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 453 |
Поскольку ID уникальный, то условие связывание в каждой копии может дать или 0 записей, или 1. Соответственно произведение тоже даст или 0, или 1 ПАРУ записей. Т.е. изменится или 0 пар записей, или 1 пара, что соответствует 0 или 2 записям.
Даже если ID отбираемых записей параметризовать и задать равные значения, то формально изменится 1 пара, но т.к. запись одна, актического изменения не будет, т.е. изменится 0 записей. Формально другой вариант возможен. Это - невыполнение запроса по любой причине (любая ошибка). И количество изменившихся записей при этом может быть любым - от нуля и до всех (скажем, при полном разрушении таблицы). И... нафига тут вообще JOIN? По-моему, декарт читабельнее:
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
maxipub |
|
|||
Опытный Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: 1 Всего: 1 |
||||
|
||||
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |