| |
|
|
| | есть 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)
| | | прикольно, спасибо, сейчас разберусь с транзакциями, буду мучить вопросами :) | |
| |
|
|