Оптимизировать и минимизировать несколько SQL запросов

Рейтинг: 1Ответов: 1Опубликовано: 02.02.2015

Как оптимизировать и минимизировать эти четыре запроса в один?

mysql_query("UPDATE `pivot` SET `curse` = '{$close}', `time`='{$timestamp}' WHERE `pair`='{$pairs[$i]}' AND `type`='close' AND `time`='{$timestamp_old}';") or die("...");

mysql_query("UPDATE `pivot` SET `curse` = '{$open}', `time`='{$timestamp}' WHERE `pair`='{$pairs[$i]}' AND `type`='open' AND `time`='{$timestamp_old}';") or die("...");

mysql_query("UPDATE `pivot` SET `curse` = '{$min}', `time`='{$timestamp}' WHERE `pair`='{$pairs[$i]}' AND `type`='min' AND `time`='{$timestamp_old}';") or die("...");

mysql_query("UPDATE `pivot` SET `curse` = '{$max}', `time`='{$timestamp}' WHERE `pair`='{$pairs[$i]}' AND `type`='max' AND `time`='{$timestamp_old}';") or die("...");

Ответы

▲ 3Принят
mysql_query("UPDATE `pivot` SET `curse` = case `type` when 'close' then '{$close}'
when 'min' then '{$min}' when 'open' then '{$open}' when 'max' then '{$max}' end 
, `time`='{$timestamp}' WHERE `pair`='{$pairs[$i]}' and `type` in ('close', 'min', 'open','max') AND `time`='{$timestamp_old}';") or die("...");