<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.3" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Комментарии на запись: Обнаружение и удаление дублирующихся записей</title>
	<link>http://www.parse.com.ua/2007/11/10/obnaruzhenie-i-udalenie-dubliruyushhixsya-zapisej/</link>
	<description>Профессиональный парсинг/граббинг/сбор информации</description>
	<pubDate>Fri, 10 Sep 2010 01:34:47 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.3</generator>

	<item>
		<title>От: admin</title>
		<link>http://www.parse.com.ua/2007/11/10/obnaruzhenie-i-udalenie-dubliruyushhixsya-zapisej/#comment-3083</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Sun, 14 Jun 2009 12:13:47 +0000</pubDate>
		<guid>http://www.parse.com.ua/2007/11/10/obnaruzhenie-i-udalenie-dubliruyushhixsya-zapisej/#comment-3083</guid>
		<description>Кстати, классное решение на особо задубленных базах. Сейчас реализую его в своем чистильщике. Спасибо!</description>
		<content:encoded><![CDATA[<p>Кстати, классное решение на особо задубленных базах. Сейчас реализую его в своем чистильщике. Спасибо!</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Гвоздь</title>
		<link>http://www.parse.com.ua/2007/11/10/obnaruzhenie-i-udalenie-dubliruyushhixsya-zapisej/#comment-3082</link>
		<dc:creator>Гвоздь</dc:creator>
		<pubDate>Sat, 13 Jun 2009 17:52:30 +0000</pubDate>
		<guid>http://www.parse.com.ua/2007/11/10/obnaruzhenie-i-udalenie-dubliruyushhixsya-zapisej/#comment-3082</guid>
		<description>я бы предожил бы первый код сократить до нижеследующего вида
все запросы по удалению dub-1 записи мы объединили в один
выигрыш производительности
PS спасибо за статью. оказалась полезной для меня
 $query='SELECT COUNT(*) AS dub, region, job_group, job_mask, job_info 
 FROM work GROUP BY region, job_group, job_mask, job_info HAVING dub&#62;1'; 
 $res=$db-&#62;query($query); 
 if(!$res) { 
	echo $db-&#62;error(); 
 } else { 
	while($row=$db-&#62;fetchAssoc($res)) { 
	        $region=$row['region']; 
  	        $job_mask=$row['job_mask']; 
  	        $job_group=$row['job_group']; 
	        $job_info=$row['job_info']; 
	        $dub=$row['dub']; 
 
	        $query="DELETE FROM work 
WHERE region='$region' AND job_mask='$job_mask' 
AND job_group='$job_group' AND job_info='$job_info' LIMIT ".($dub-1); 
 
		$result=$db-&#62;query($query); 
	} 
}</description>
		<content:encoded><![CDATA[<p>я бы предожил бы первый код сократить до нижеследующего вида<br />
все запросы по удалению dub-1 записи мы объединили в один<br />
выигрыш производительности<br />
PS спасибо за статью. оказалась полезной для меня<br />
 $query=&#8217;SELECT COUNT(*) AS dub, region, job_group, job_mask, job_info<br />
 FROM work GROUP BY region, job_group, job_mask, job_info HAVING dub&gt;1&#8242;;<br />
 $res=$db-&gt;query($query);<br />
 if(!$res) {<br />
	echo $db-&gt;error();<br />
 } else {<br />
	while($row=$db-&gt;fetchAssoc($res)) {<br />
	        $region=$row[&#8217;region&#8217;];<br />
  	        $job_mask=$row[&#8217;job_mask&#8217;];<br />
  	        $job_group=$row[&#8217;job_group&#8217;];<br />
	        $job_info=$row[&#8217;job_info&#8217;];<br />
	        $dub=$row[&#8217;dub&#8217;]; </p>
<p>	        $query=&#8221;DELETE FROM work<br />
WHERE region=&#8217;$region&#8217; AND job_mask=&#8217;$job_mask&#8217;<br />
AND job_group=&#8217;$job_group&#8217; AND job_info=&#8217;$job_info&#8217; LIMIT &#8220;.($dub-1); </p>
<p>		$result=$db-&gt;query($query);<br />
	}<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: admin</title>
		<link>http://www.parse.com.ua/2007/11/10/obnaruzhenie-i-udalenie-dubliruyushhixsya-zapisej/#comment-341</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Thu, 26 Jun 2008 09:17:57 +0000</pubDate>
		<guid>http://www.parse.com.ua/2007/11/10/obnaruzhenie-i-udalenie-dubliruyushhixsya-zapisej/#comment-341</guid>
		<description>2 таблицы - не очень удобно. Но я думаю, что быстрее будет, чем тот скрипт, что предоставил я. 
Я уже когда-то пробовал мастерить с двумя таблицами, но к сожалению постоянно надо контроллировать этот процесс, что не очень удобно. Со скриптом же все проще - врубил и можешь идти пить чай.</description>
		<content:encoded><![CDATA[<p>2 таблицы - не очень удобно. Но я думаю, что быстрее будет, чем тот скрипт, что предоставил я.<br />
Я уже когда-то пробовал мастерить с двумя таблицами, но к сожалению постоянно надо контроллировать этот процесс, что не очень удобно. Со скриптом же все проще - врубил и можешь идти пить чай.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: M.C.A.U.</title>
		<link>http://www.parse.com.ua/2007/11/10/obnaruzhenie-i-udalenie-dubliruyushhixsya-zapisej/#comment-339</link>
		<dc:creator>M.C.A.U.</dc:creator>
		<pubDate>Mon, 23 Jun 2008 12:28:30 +0000</pubDate>
		<guid>http://www.parse.com.ua/2007/11/10/obnaruzhenie-i-udalenie-dubliruyushhixsya-zapisej/#comment-339</guid>
		<description>- работает если запустить один раз.
если повторно запускать, то нужно вначале проверить не пуста ли таблица "tmp", иначе он сотрет все из `work`</description>
		<content:encoded><![CDATA[<p>- работает если запустить один раз.<br />
если повторно запускать, то нужно вначале проверить не пуста ли таблица &#8220;tmp&#8221;, иначе он сотрет все из `work`</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: M.C.A.U.</title>
		<link>http://www.parse.com.ua/2007/11/10/obnaruzhenie-i-udalenie-dubliruyushhixsya-zapisej/#comment-338</link>
		<dc:creator>M.C.A.U.</dc:creator>
		<pubDate>Mon, 23 Jun 2008 12:20:58 +0000</pubDate>
		<guid>http://www.parse.com.ua/2007/11/10/obnaruzhenie-i-udalenie-dubliruyushhixsya-zapisej/#comment-338</guid>
		<description>немного извращенный вариант

CREATE TEMPORARY TABLE `tmp` SELECT `ID` FROM `work` GROUP BY `region`, `job_group`, `job_mask`, `job_info` HAVING COUNT(*)&#62;1;
DELETE FROM `work` WHERE `ID` NOT IN (SELECT `ID` FROM `tmp`);
DROP TABLE `tmp`;</description>
		<content:encoded><![CDATA[<p>немного извращенный вариант</p>
<p>CREATE TEMPORARY TABLE `tmp` SELECT `ID` FROM `work` GROUP BY `region`, `job_group`, `job_mask`, `job_info` HAVING COUNT(*)&gt;1;<br />
DELETE FROM `work` WHERE `ID` NOT IN (SELECT `ID` FROM `tmp`);<br />
DROP TABLE `tmp`;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
