Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mysql: обновить несколько записей за раз, разными значениями по разным условиям 
:(
    Опции темы
bazzjr
Дата 3.7.2010, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: нет
Всего: 6



Всем привет!

Скажите уважаемые, возможно ли сделать одним запросом следующие конструкции?

1
Код

$sql = mysql_query("UPDATE `table1` SET `aa`='1' WHERE `id1`='".$id."'",$connect) or die();
$sql = mysql_query("UPDATE `table2` SET `bb`='1' WHERE `id2`='".$id."'",$connect) or die();

2
Код

$sql = mysql_query("UPDATE `table1` SET `id`='999999999' WHERE `id`='".$id1."' LIMIT 1",$connect) or die();
$sql = mysql_query("UPDATE `table1` SET `id`='".$id1."' WHERE `id`='".$id2."' LIMIT 1",$connect) or die();
$sql = mysql_query("UPDATE `table1` SET `id`='".$id2."' WHERE `id`='999999999' LIMIT 1",$connect) or die();



Это сообщение отредактировал(а) bazzjr - 3.7.2010, 20:53
PM MAIL ICQ   Вверх
Akina
Дата 4.7.2010, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Да, можно. Причём элементарно.
Как - не скажу, пока ты не научишься уважать время тех, от кого ждёшь помощи.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bazzjr
Дата 5.7.2010, 00:08 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: нет
Всего: 6



Akina, я все понимаю, понимаю вашу занятость и ограниченность времени... но и меня поймите пожалуста.

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

Доступа в инет сейчас практически нет(так как в больнице).

Поэтому я задал сюда эти простые вопросы в надежде получить быстрый и точный ответ.
PM MAIL ICQ   Вверх
Akina
Дата 5.7.2010, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



bazzjr, хорошо, перевожу на совсем уж понятный язык. В форуме по MySQL размещают именно MySQL-код, а не коды запросов, закрученных в ПХП-шную шубу. 

MySQL позволяет оформить несколько запросов одной строкой:
Код

Update t1 Set f1='1';Update t2 Set f2='2';Update t3 Set f3='3';

Все эти три запроса отправляются серверу одной строкой (что с консоли, что из любого ЯП), и все три выполняются.



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
skyboy
Дата 5.7.2010, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 15
Всего: 260



Цитата(Akina @  5.7.2010,  07:08 Найти цитируемый пост)
MySQL позволяет оформить несколько запросов одной строкой:

а вот mysql_query не позволяет. зато позволяет mysqli
PM MAIL   Вверх
bazzjr
Дата 5.7.2010, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: нет
Всего: 6



skyboy, не мог бы ты набросать пример, как будет выглядеть запрос для меня?

Добавлено через 27 секунд
Akina, спасибо, я понял.
PM MAIL ICQ   Вверх
Akina
Дата 5.7.2010, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(skyboy @  5.7.2010,  11:22 Найти цитируемый пост)
а вот mysql_query не позволяет

А эту проблему следует решать в форуме по PHP.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bazzjr
Дата 5.7.2010, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: нет
Всего: 6



Цитата(Akina @ 5.7.2010,  13:48)
Цитата(skyboy @  5.7.2010,  11:22 Найти цитируемый пост)
а вот mysql_query не позволяет

А эту проблему следует решать в форуме по PHP.

Как то раз я создал две одинаковые темы - получил предупреждение.

Поэтому либо вы переносите эту тему в PHP раздел, либо я создам там такую же, с вашего разрешения smile.
PM MAIL ICQ   Вверх
Akina
Дата 5.7.2010, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(bazzjr @  5.7.2010,  19:32 Найти цитируемый пост)
Как то раз я создал две одинаковые темы - получил предупреждение.

Правильно. Разделите вопрос, и каждую часть размещайте в подходящем форуме.

Цитата(bazzjr @  5.7.2010,  19:32 Найти цитируемый пост)
Поэтому либо вы переносите эту тему в PHP раздел, либо я создам там такую же, с вашего разрешения

Перенести не могу - в этом разделе у меня нет таких прав, я тут обычный пользователь.
Создавать такую же не советую - по причинам, описанным выше. И моё разрешение (даже если я его дам) не поможет - там я тоже обычный пользователь.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
skyboy
Дата 5.7.2010, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 15
Всего: 260



тебе надо определиться. не "помогите что-то сделать", а либо "хочу выполнить за раз обновление нескольких полей в РНР" в "РНР: Базы данных" - и тебе рассказывают, что mysql_query этого делать не умеет, либо "хочу сделать одним запросом обновление разными данными по разным условиям" - и тебе одновременно и предлагают использовать функции IF(), CASE() и, в то же время, доказывают малую практическую ценность подобного "сцепления" запросов.
но для этого тебе надо решить - че тебе все ж надо? если решить не можешь, то описывай решаемую задачу(конкретный нюанс рабочего проекта, учебное задание, теоретический вопрос) и соответствующие ограничения("только mysql_query, потому что уже все завязанно на нем", "только средствами SQL-запроса, потому что так сказал преподаватель", "универсально и с неограниченным количеством параметров-условий, потому что неясно, как будет дальше использоваться"), а не выбранный путь(раз уж ты с ним определиться не можешь)
PM MAIL   Вверх
bazzjr
Дата 5.7.2010, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: нет
Всего: 6



skyboy, все, спасибо smile

Вопрос снят с повестки дня  smile

Добавлено через 3 минуты и 4 секунды
Akina, с 14242 сообщений(по моему больше всех у кого я мог видеть) и 4-мя звездами smile, мне кажется можно стать с легкостью модератором-администратором  smile 
PM MAIL ICQ   Вверх
skyboy
Дата 5.7.2010, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 15
Всего: 260



так че решил-то? или просто отложил задачу "на будущее"?
Цитата(bazzjr @  5.7.2010,  20:43 Найти цитируемый пост)
мне кажется можно стать с легкостью модератором-администратором

а ты на статус его внимание обрати  smile
PM MAIL   Вверх
bazzjr
Дата 6.7.2010, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: нет
Всего: 6



Цитата(skyboy @ 5.7.2010,  23:47)
так че решил-то? или просто отложил задачу "на будущее"?

Сделал выводы из твоих слов, о том что такие запросы не нужно реализовывать с помощью "IF(), CASE()" и невозможно с помощью "mysql_query()".

Вывод - оставить "пока" все как есть.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0537 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.