Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > UPDATE optimization


Автор: anka 6.3.2008, 16:32
Привет всем....
 у меныа вот такаыа проблема.....


Код

$db=mysql_query("SELECT field FROM table where field!=0");
while ($result=mysql_fetch_array($db))
{

$update =mysql_query("UPDATE table1 SET field1='lalalala' WHERE table1.field1='".$result['field']."'");

}


у мена там записеы болше 10000.... и он тормозит smile

потом хотел оптимизироват..... как внизу

Код

$UPDATE=mysql_query("UPDATE table1 SET field1='lalalala' WHERE table1.field1 in (select field from table where field!=0)");



Но не работает.....


Автор: Feldmarschall 6.3.2008, 16:51
Опишите задачу полностью.
С реальными, а не примерными таблицами.

Для одноразовой задачи скорость выполнения не проблема.
Если же это делается при штатной работе сайта, то надо все переделывать


Автор: anka 6.3.2008, 16:58
Все уэ решил



Код

--------------------------------
mysql_query("UPDATE table1,(select field from table where field!=0) as tab SET field1='lalalala' WHERE table1.field1=tab.field");
--------------------------------




 smile 

Автор: bars80080 6.3.2008, 17:01
может так:

Код

$db=mysql_query("SELECT field FROM table where field!=0");
$sql = '';
while($result=mysql_fetch_array($db)) { $sql .= ' or field1="'.$result['field'].'"'; }

if(strlen($sql) > 0) {
$sql = substr($sql, 3);
$update = mysql_query('UPDATE table1 SET field1="lalalala" WHERE '.$sql); }



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)