How to convert this query in magento style
`SELECT MAX(s.num) FROM (
SELECT CONVERT(SUBSTRING_INDEX(sku,'-',-1),UNSIGNED INTEGER) AS num
FROM catalog_product_entity
WHERE (sku REGEXP "^[0-9]+$")
) as s`
If you offer a good article that will help me, then I will take it as an answer.
UPDATE
I write this query :
$select = $connection->select()
->from(
$connection->select()->from(
'catalog_product_entity',
['num' => new \Zend_Db_Expr('SELECT CONVERT(SUBSTRING_INDEX(sku,\'-\',-1),UNSIGNED INTEGER')]
)->where(
$connection->quoteIdentifier('sku') . ' REGEXP :pattern'
),
[ new \Zend_Db_Expr('max(t.num)')]
);
print_r($select->__toString()); exit();
But select duplicated
SELECT max(t.num) FROM (
SELECT SELECT CONVERT(SUBSTRING_INDEX(sku,'-',-1),UNSIGNED INTEGER AS `num`
FROM `catalog_product_entity` WHERE (`sku` REGEXP :pattern)
) AS `t`