[MySQL] вопрос

laki

update Messages set ID_UserModerator = 5 where ID_Message in (select m.ID_Message from Messages m where m.ID_UserModerator = 5 and m.MessageA is null and m.MessageSkipByModerator = 0 and m.MessageSkipByRespondent = 0 and m.MessageRespondentCanView = 0)
как сделать в мускуле вот такой запрос?

Elina74

вложенные селекты вроде в мускуле пока не работают...
предлагают создавать временную таблицу

laki

а из нее же все равно селект делать или я не прав?

Andr163

а зачем ставить значение в 5, если оно уже и так 5 ?

laki

не в этом дело это первое что под руку попало.
идея то в другом

rosali

Я такое всегда делал из перла и пока ничего лучшего не знаю. Делаешь select строишь в перле список нужного, а потом update ... where ... in (и печатаешь сюда список нужного). А не, есть еще один отличный способ, если перла нет под рукой: пишешь с помощью всяких concat-ов и пр. запрос результат работы которого - текст другого запроса, и потом mysql | mysql ну или что-то типа того.

laki

так и сделал.

korsar0156

вложенные запросы в MySQL ещё как работают, правда только в 4.1
Можно конечно и без вложенных обойтись. Что-то типа
CREATE TEMPORARY TABLE ids(id int);
INSERT INTO ids(id) SELECT id FROM messages WHERE ...;
UPDATE messages, ids SET ... WHERE messages.id=ids.id;
DROP TABLE ids;

laki

ага уже подумывал послать заявку на хостинг чтобы мускул поменяли.

zya369

[quote]
UPDATE messages, ids
[quote]
а так можно? имхо нонсенс

Lorin

низя:
скорее очепятка update msgs set ... from ids where ...
Оставить комментарий
Имя или ник:
Комментарий: