Index: branches/version-2_13-dev/data/class/api/operations/ItemSearch.php
===================================================================
--- branches/version-2_13-dev/data/class/api/operations/ItemSearch.php	(revision 23124)
+++ branches/version-2_13-dev/data/class/api/operations/ItemSearch.php	(revision 23378)
@@ -114,7 +114,8 @@
     protected function getProductsList($searchCondition, $disp_number, $startno, $linemax, &$objProduct)
     {
+        $objQuery =& SC_Query_Ex::getSingletonInstance();
+
         $arrOrderVal = array();
 
-        $objQuery =& SC_Query_Ex::getSingletonInstance();
         // 表示順序
         switch ($searchCondition['orderby']) {
@@ -147,19 +148,12 @@
                     $dtb_product_categories = 'dtb_product_categories';
                 }
-                $order = <<< __EOS__
-                    (
-                        SELECT
-                            T3.rank * 2147483648 + T2.rank
-                        FROM
-                            $dtb_product_categories T2
-                            JOIN dtb_category T3
-                              ON T2.category_id = T3.category_id
-                        WHERE T2.product_id = alldtl.product_id
-                        ORDER BY T3.rank DESC, T2.rank DESC
-                        LIMIT 1
-                    ) DESC
-                    ,product_id DESC
-__EOS__;
-                    $objQuery->setOrder($order);
+                $col = 'T3.rank * 2147483648 + T2.rank';
+                $from = "$dtb_product_categories T2 JOIN dtb_category T3 ON T2.category_id = T3.category_id";
+                $where = 'T2.product_id = alldtl.product_id';
+                $objQuery->setOrder('T3.rank DESC, T2.rank DESC');
+                $objQuery->setLimit(1);
+                $sub_sql = $objQuery->getSqlWithLimitOffset($col, $from, $where);
+
+                $objQuery->setOrder("($sub_sql) DESC ,product_id DESC");
                 break;
         }
