Dekker Дык можно всё проапдейтить. Тоже мне нашли проблему. Так.. вот так MySQL не позволяет сделать для MyISAM таблиц: update ibf_posts set new_topic=1 where pid in (
select pp.first_post from ibf_posts p, (
select topic_id, min(pid) as first_post from ibf_posts group by topic_id) pp
where p.pid = pp.first_post and p.new_topic=0
) Млин.. а так к ораклу привык Так... Ну тогда излюбленный приём для MySQL: select concat('update ibf_posts set new_topic=1 where pid=', pp.first_post ,'; -- topic_id=',pp.topic_id) as queries_to_run_in_phpMyAdmin from ibf_posts p, (
select topic_id, min(pid) as first_post from ibf_posts group by topic_id) pp
where p.pid = pp.first_post and p.new_topic=0
LIMIT 2000 Ну и на всякий случай можно отсекать те темы, в которых new_topic стоит но не соответствует минимальному pid'у (чтобы не получилось два поста с new_topic=1): select concat('update ibf_posts set new_topic=1 where pid=', pp.first_post ,'; -- topic_id=',pp.topic_id) as queries_to_run_in_phpMyAdmin from ibf_posts p, (
select topic_id, min(pid) as first_post from ibf_posts group by topic_id) pp
where p.pid = pp.first_post and p.new_topic=0 and pp.topic_id not in ( select topic_id
from ibf_posts where topic_id=pp.topic_id and new_topic=1)
LIMIT 2000 Я вот у себя таких много нашёл заодно и себе исправил всё