Sql Запрос
5 ответов169 просмотровСейчас просматривают: 1
· 09.09.2009, 10:41
вот запрос :
CODE
UPDATE `characters` SET `accesslevel` = '-100' WHERE `obj_Id` (SELECT FROM `characters` WHERE `level` > 70 AND `onlinetime` < 20000);
немогу построить запрос, кто может исправьте его, буду благодарен.
0
· 09.09.2009, 12:05
Для чего вообще такое извращенство, которое мускуль даже не поддерживает?
Если обновить нужно записи из той-же таблицы где и условия, составляем всё напрямую.
— Life is boring.
0
· 09.09.2009, 12:32
CODE
UPDATE `characters` SET `accesslevel` = '-100' WHERE `obj_Id` in (SELECT FROM `characters` WHERE `level` > 70 AND `onlinetime` < 20000);
но вообще "Insane" прав.
0
· 09.09.2009, 12:39
MySql не выполняет запросы, когда и условие и действие находятся в одной таблице.
+ Вы не верно составили.
QUOTE
UPDATE `characters` SET `accesslevel` = '-100' WHERE `obj_Id` in (SELECT `obj_Id` FROM `characters` WHERE `level` > 70 AND `onlinetime` < 20000);
Результат выведется такой:
CODE
[b]ERROR 1093 : You can't specify target table 'characters' for update in FROM clause[/b]
Правильный запрос по прежнему:
— Life is boring.
0
Тема закрыта для ответов



