Так. Какая-то неведомая херня. Может, конечно, от недосыпа, но не знаю. Поле sort - int(11) [sql]UPDATE table SET sort = (SELECT MAX(sort) + 1) WHERE id = 12[/sql] Устанавливает sort = NULL Эмммм... Задача - одним запросом установить максимальное значение поля sort и увеличить его на 1. Что я делаю не так???.... Такой запрос вообще возможен?
Если сделать SELECT MAX(sort) FROM table mysql отвечает, что искомая таблица уже упоминалась в запросе, и не нужно её еще раз указывать. Экранировать тоже пробовал - не помогает.
для нормального использования подзапросов - надо обязательно таблицам указывать синонимы ... кавычить поля - все таки очень желательно - обычно много головной болт снимает
[sql]UPDATE `temp_table` SET `sort` = (SELECT ms FROM (SELECT MAX(`sort`)+1 as ms FROM `temp_table`) AS _t) WHERE `ID` = 12[/sql] беру свои слова обратно именование алиясов работает только для подзапросов в запросах .. а не в апдейтах П.С. то что привел выше в данном сообщение по-идее работает
admyx - давай криэйт сюда + заполнение и код который используешь полностью .. попробую повторить П,С, : незабудь указать версию сервера
admyx Доступ к базе по порту есть? Если да, то вместо phpMyAdmin пользуйся http://dev.mysql.com/downloads/gui-tools/5.0.html http://dev.mysql.com/downloads/workbench/5.1.html
Simpliest +1 ... а если не локалный сервер .. то наверняка ссх есть и тогда путти умеет порт мапить ;-) (очень понравилось это решение )
Simpliest Да знаю я, знаю. Просто хостинг infobox)) А их "гениальная" настройка серверов скоро станет притчей во языцех.