[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Объединение 2х запосов в один
Регент
Собственно необходимо выполнить 3 запроса в mySQL:

SELECT `id` 
from `content`
WHERE `flag` = '1' LIMIT 1

UPDATE `content` SET
`flag` = '1'
WHERE `id` = '*id из предыдущего запроса*'


UPDATE `menu` SET
`flag` = '1'
WHERE `id` = '*id из первого запроса*'



Видел где-то реализацию, но сейчас немого найти. sad.gif
заранее спасибо!



Спустя 5 минут, 59 секунд (12.03.2010 - 17:52) DedMorozzz написал(а):
UPDATE `menu` SET
`flag` = '1'
WHERE `id` = '(SELECT `id`
from `content`
WHERE `flag` = '
1' LIMIT 1)'

как-то так

Спустя 3 минуты, 47 секунд (12.03.2010 - 17:56) Регент написал(а):
Цитата (DedMorozzz @ 12.03.2010 - 14:52)
<pre class="sh_sourceCode" rel="sql"><span class="sh_keyword">UPDATE</span> <span class="sh_att">`menu`</span> <span class="sh_type">SET</span>
<span class="sh_att">`flag`</span> <span class="sh_symbol">=</span> <span class="sh_string">'1'</span>
<span class="sh_keyword">WHERE</span> <span class="sh_att">`id`</span> <span class="sh_symbol">=</span> <span class="sh_string">'(SELECT `id`
from `content`
WHERE `flag` = '</span><span class="sh_number">1</span><span class="sh_string">' LIMIT 1)'</span></pre>
как-то так

Пробовал, плюётся:
Цитата
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' LIMIT 1)'' at line 3


ЗЫ:
и как объединить эти 3 запроса в один?

Спустя 3 минуты, 50 секунд (12.03.2010 - 18:00) DedMorozzz написал(а):
3 никак. ты не можешь апдейтить таблицу выбирая условие из обновляемой таблицы
2 - надо помудрить, а 3 - никак.

Спустя 3 минуты, 10 секунд (12.03.2010 - 18:03) Регент написал(а):
Цитата (DedMorozzz @ 12.03.2010 - 15:00)
3 никак. ты не можешь апдейтить таблицу выбирая условие из обновляемой таблицы
2 - надо помудрить, а 3 - никак.

жалко что 3 не получится, но не критично. Но хотя бы 2е реализовать чтобы лишний раз не обращаться к базе из скрипта.

Ладно, а положим объединить

UPDATE `content` SET 
`flag` = '1'
WHERE `id` = '1'

и
UPDATE `menu` SET 
`flag` = '1'
WHERE `id` = '1'

както можно?

Спустя 8 минут, 32 секунды (12.03.2010 - 18:11) DedMorozzz написал(а):
UPDATE `menu`,`content` SET
`menu`.`flag` = '1',`contentcontent`.`flag`='1'
WHERE `content`.`id` =$id_query_1 AND `menu`.`id`=$id_query_1

Спустя 2 минуты, 6 секунд (12.03.2010 - 18:13) Регент написал(а):
спасибо.

Спустя 4 минуты, 14 секунд (12.03.2010 - 18:18) Регент написал(а):
Сори и ещё вопрос, а как объединить

UPDATE `content` SET 
`flag` = '1'
WHERE `id` = '1'


и

UPDATE `content` SET 
`flag` = '1'
WHERE `id` = '2'

Спустя 4 минуты, 44 секунды (12.03.2010 - 18:22) DedMorozzz написал(а):
UPDATE `content` SET 
`flag` = '1'
WHERE `id` = '1' OR `id`='2'

Спустя 3 минуты, 46 секунд (12.03.2010 - 18:26) Регент написал(а):
немного не так выразился значения `flag` будут различные. Чтото вида:

UPDATE `content` SET 
`flag` = '1'
WHERE `id` = '1'

UPDATE `content` SET
`flag` = '2'
WHERE `id` = '2'

Спустя 19 минут, 5 секунд (12.03.2010 - 18:45) DedMorozzz написал(а):
у тя 1й запрос обновления идёт таким образом. Изменить поле "флаг"на "значение", где айди = 1. Нельзя дать разные ЗНАЧЕНИЯ на изменение. Это и есть разные запросы.

Спустя 1 час, 9 минут, 13 секунд (12.03.2010 - 19:55) Регент написал(а):
Двойка мне... sad.gif

только что дошло такая простая вещь, что проще в скрипте писать сразу 2 запроса чем их объединять...

$query = "
UPDATE `content` SET
`flag` = '1'
WHERE `id` = '1';

UPDATE `content` SET
`flag` = '2'
WHERE `id` = '2'
"
;
$result = mysql_query($query) or die("Ошибка базы в запросе 12 строка 50 : " . mysql_error());


Ещё раз спасибо!

Спустя 16 минут, 43 секунды (12.03.2010 - 20:11) Adil написал(а):
чую что ты разочаруешься.. wink.gif

Спустя 14 часов, 29 минут, 13 секунд (13.03.2010 - 10:40) Регент написал(а):
К сожалению так и получилось... В phpmyadmin этот запрос выполняется на ура. вставляю в скрипт и начинает ругаться на синтаксис.
Что делаю не так? В какую сторону копать?

Спустя 2 дня, 3 часа, 34 минуты, 13 секунд (15.03.2010 - 14:15) AHDPEu написал(а):
Пробуй запрос с UNION

Спустя 38 минут, 41 секунда (15.03.2010 - 14:53) DedMorozzz написал(а):
Интересно, что ты этим хотел сказать? Может решение данного примера продемонстрируешь?

Спустя 48 минут, 2 секунды (15.03.2010 - 15:41) Nikitian написал(а):
Цитата (AHDPEu @ 15.03.2010 - 11:15)
Пробуй запрос с UNION

UNION только для SELECT'ов


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.