0

我说 3 个产品

  1. SKU“xyz_1”和价格“10”的 P1
  2. SKU“xyz_2”和价格“20”的 P2
  3. SKU“xyz_3”和价格“50”的 P3

我想在magento中查询sku xyz以最低价格,即xyz_1仅。

我想要这样的东西select ,Regex('SKU','myexpression') as SKU从sku中删除最后一部分,即“_”部分,然后对产品集合应用过滤器以最低价格获得产品。

任何想法如何用 Magento 处理这个问题?

4

1 回答 1

1

你可以这个正则表达式:^xyz。这将匹配任何以开头的字符串xyz并忽略后面的内容。

话虽如此,您需要修改查询以按价格对结果进行排序,因为正则表达式不适合数字比较(小于、大于等)。

编辑:根据您的问题,您可以将此处的一些代码调整为:

$write = Mage::getSingleton('core/resource')->getConnection('core_write');

// now $write is an instance of Zend_Db_Adapter_Abstract
$readresult=$write->query("SELECT SUBSTRING(sku, 0, INSTR(sku, '_')) AS SKU FROM <your table> WHERE sku REGEXP '^<your sku>' ORDER BY price asc LIMIT 1;");

SELECT INSTR('foobarbar', 'bar');

于 2014-06-10T07:22:09.763 回答