|
|
|
| есть 3 разных запроса:
$aupdate = "UPDATE `article` SET `main`=1 WHERE `id`=".(int($id));
$aupdate = "UPDATE `category` SET `main`=1 WHERE `id`=1";
$aupdate = "UPDATE `category` SET `main`=0 WHERE `id`=".(int($id));
|
как объединить их в один? | |
|
|
|
|
|
|
|
для: Bvz
(25.08.2010 в 11:54)
| | Через JOIN | |
|
|
|
|
|
|
|
для: Лена
(25.08.2010 в 12:36)
| | а подскажите как, а то я join только в select использовал :) | |
|
|
|
|
|
|
|
для: Bvz
(25.08.2010 в 12:47)
| | Соединение таблиц - такое же, как и в select`e.
Схематически можно так представить:
UPDATE table1 t1
LEFT JOIN table2 t2
ON (условие объединения таблиц)
SET t2.поле таблицы = значение
WHERE...
Пробуйте сами, толку больше будет. | |
|
|
|
|
|
|
|
для: Лена
(25.08.2010 в 12:59)
| | т.е. правильно я понял, что принцип тот же? | |
|
|
|
|
|
|
|
для: Bvz
(25.08.2010 в 13:08)
| | Правильно. | |
|
|
|
|
|
|
|
для: Bvz
(25.08.2010 в 13:08)
| | Вот только таблицы у Вас по факту запросов не связаны, и за каким кренделем их понадобилось соединять - непонятно совсем. | |
|
|
|
|
|
|
|
для: Trianon
(26.08.2010 в 00:24)
| | да они не связаны, вы правильно подметили, просто эти 3 запроса надо выполнить одновременно | |
|
|
|
|
|
|
|
для: Bvz
(26.08.2010 в 16:43)
| | Если Вы их выполните друг за другом, то ничего не потеряете. | |
|
|
|
|
|
|
|
для: Diplex
(27.08.2010 в 01:28)
| | я так и делаю, просто думал, что можно оптимизировать ) | |
|
|
|
|
|
|
|
для: Bvz
(27.08.2010 в 01:30)
| | если вам необходимо изменить информацию так чтобы между первым запросом и вторым или третьим не произошло чтения таблицы (которое даст неверные результаты) другим пользователем существует блокировка таблиц. Либо применяйте тип таблиц InnoBD и используйте транзакции. | |
|
|
|
|
|
|
|
для: Valick
(27.08.2010 в 07:38)
| | мне необходимо что выполнились эти 3 запроса, ибо тогда нет смысла в этих манипуляциях.
а как блокировать таблицы? | |
|
|
|
|
|
|
|
для: Bvz
(27.08.2010 в 08:48)
| | лучше смотрите в сторону транзакций, если необходимо отменить изменения в таблице в случае если при выполнении одного из запросов случиться ошибка, к тому же в InnoBD используется блокировка на уровне рядов (нет необходимости блокирровать всю таблицу)
ну а блокировка :(... не задавайте пустых вопросов которые можно спросить у гугла соблюдайте субординацию ;) | |
|
|
|
|
|
|
|
для: Valick
(27.08.2010 в 09:04)
| | спасибо, а где про транзакции почитать можно | |
|
|
|
|
|
|
|
|
|
для: Trianon
(27.08.2010 в 13:55)
| | здорово, а как вы так сделали? | |
|
|
|
|
|
|
|
|
для: Trianon
(30.08.2010 в 11:09)
| | прикольно, спасибо, сейчас разберусь с транзакциями, буду мучить вопросами :) | |
|
|
|