我研究了很多,我确信答案是否定的,但我很想证明是错的.
我想执行用DQL编写的包含REGEXP操作的查询.例如:
select * from assets
where campaign_id = 1
and fileName REGEXP 'godzilla*'
order by fileName desc
Run Code Online (Sandbox Code Playgroud)
又名
$builder->add('select', 'a.fileName')
->add('from', '\Company\Bundle\Entity\Asset a')
->add('where', 'a.campaign=1')
->...REGEXP MAGIC...
->add('orderBy', 'a.fileName desc');
Run Code Online (Sandbox Code Playgroud)
(这是一个简单的正则表达式,我意识到可以像LIKE一样完成,但它只是一个例子 - 我真正的正则表达式更复杂)
我查看了Doctrine\ORM\Query\Expr类以及QueryBuilder类.我看不到对REGEXP的支持.有人在SO上发帖说他们使用了Expr类,但这实际上并不起作用(他们说这是未经测试的).
任何想法如何在DQL中执行REGEXP w/out直接编写SQL?TIA.