我说 3 个产品
- SKU“xyz_1”和价格“10”的 P1
- SKU“xyz_2”和价格“20”的 P2
- SKU“xyz_3”和价格“50”的 P3
我想在magento中查询sku xyz
以最低价格,即xyz_1
仅。
我想要这样的东西select ,Regex('SKU','myexpression') as SKU
从sku中删除最后一部分,即“_”部分,然后对产品集合应用过滤器以最低价格获得产品。
任何想法如何用 Magento 处理这个问题?
你可以这个正则表达式:^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');