From 3d8f3f9ca962d862c6ae40cc443ec1645ac45a72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Thu, 14 Mar 2013 05:58:37 -0700 Subject: [PATCH] Merge pull request #299 from samy-r/dev-import-time Import time improvment --- classes/Feature.php | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/classes/Feature.php b/classes/Feature.php index 6d9c2dc7e..83b49bb57 100644 --- a/classes/Feature.php +++ b/classes/Feature.php @@ -313,19 +313,14 @@ class FeatureCore extends ObjectModel public static function cleanPositions() { $return = true; - $sql = ' - SELECT `id_feature` - FROM `'._DB_PREFIX_.'feature` - ORDER BY `position`'; - $result = Db::getInstance()->executeS($sql); - - $i = 0; - foreach ($result as $value) - $return = Db::getInstance()->execute(' - UPDATE `'._DB_PREFIX_.'feature` - SET `position` = '.(int)$i++.' - WHERE `id_feature` = '.(int)$value['id_feature']); + UPDATE `'._DB_PREFIX_.'feature` f LEFT JOIN + (SELECT @i := @i +1 AS rank, id_feature, position + FROM `'._DB_PREFIX_.'feature` JOIN (SELECT @i :=1) dummy + ORDER by position) AS f2 + USING(id_feature) + SET f.position = f2.rank-1'; + $return = Db::getInstance()->executeS($sql); return $return; }