我正在使用beberlei doctrine extension REGEXP
DoctrineExtensions\Query\Mysql\Regexp
查询
我的工作SQL查询是:
WHERE (
'http://www.example.com/product/1' REGEXP concat('^.*', `url`, '.*$')
AND
`url_type` = 'contains'
)
url
和url_type
是MySQL表格中的字段。
我在queryBuilder中使用它如下:
$qb->expr()->andX(
$qb->expr()->eq('e.urlType', $qb->expr()->literal('contains')),
'REGEXP(:url, CONCAT(:anythingBefore, e.url, :anythingAfter)) = 1'
)
->setParameter('anythingBefore', '^.*')
->setParameter('anythingAfter', '.*$')
->setParameter('url', $url);
是否可以使用以下$expr()
重新编写它,因此我不必将正则表达式部分作为参数传递,因此我可以创建更复杂的正则表达式?
$qb->expr()->concat($qb->expr()->literal('^.*'), 'e.url', $qb->expr()->literal('.*$'))