【发布时间】:2012-01-10 21:00:52
【问题描述】:
我对此进行了大量研究,我确信答案是否定的,但我很想证明是错误的。
我想执行一个用 DQL 编写的包含 REGEXP 操作的查询。例如:
select * from assets
where campaign_id = 1
and fileName REGEXP 'godzilla*'
order by fileName desc
又名
$builder->add('select', 'a.fileName')
->add('from', '\Company\Bundle\Entity\Asset a')
->add('where', 'a.campaign=1')
->...REGEXP MAGIC...
->add('orderBy', 'a.fileName desc');
(这是一个简单的正则表达式,我意识到可以像 LIKE 一样完成,但这只是一个例子——我真正的正则表达式更复杂)
我查看了 Doctrine\ORM\Query\Expr 类以及 QueryBuilder 类。我看不到对 REGEXP 的支持。 SO 上有人发帖说他们使用了 Expr 类,但这实际上不起作用(他们说它未经测试)。
知道如何在不编写直接 SQL 的情况下在 DQL 中执行 REGEXP 吗? TIA。
【问题讨论】:
标签: php orm doctrine doctrine-orm