|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Yuriy Kaminskiy 2:5020/517.21 19 Dec 2001 05:53:59 To : Artem Chuprina Subject : Re: таймаyт -------------------------------------------------------------------------------- >>>>> On 17:23 18/12/2001, ran@ice.ru writes: AC> Можно. Если делать не так, как ты, а так, как положено на SQL. То AC> есть тремя запросами, а не 600. AG> Hеужели лучше сформировать DELETE FROM my_large_table WHERE id=1 AG> OR id=3 OR id=4 OR id=5 OR id=7 OR id=9 OR id=10 OR id=30 OR id=31 AG> OR id=32 OR id=33 OR id=34 OR id=35 OR id=38... AG> и так примерно 500 раз??? AC> Зачем? DELETE FROM my_large_table WHERE id IN (SELECT ... FROM AC> ...). Для мыскля придется этот вложенный селект переписать как AC> JOIN. H-непонял, какой-такой join в DELETE? В мыскле, AFAIK, это только руками можно сделать - как раз через ... WHERE id IN (".join(',',@ids).")"; # совсем правильно - еще проверять длину, и разбивать на несколько # запросов по необходимости Эффективность такого "решения", конечно, не подарок (гонять @ids туда/сюда по сети, да еще перекодировать в/из строки), но лучше, чем "куча delete". AC> Более взрослая база сделает это сама. Во-во. При таких задачах нужно не морочить себе (и окружающим :)) голову, и переходить на что-то более продвинутое, чем мыскль. AC> В общем, читайте базовые книжки по SQL, они рулят. Только вот мыскль не рулит, а совсем даже наоборот :) -- Yuriy Kaminskiy. --- Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.1 (Cuyahoga Valley) * Origin: none (2:5020/517.21@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/174276f13f9b2.html, оценка из 5, голосов 10
|