作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发 Symfony 3 CRM,我需要能够创建一个客户列表,该列表可以按姓氏的第一个字母进行过滤。问题是,我需要先拆分列数据才能找到姓氏 - 这是因为数据库与 Sage 同步,Sage 需要特定格式的数据,所以我无法更改它。
我发现了 SUBSTRING_INDEX
函数并在我的 mySQL 软件中对其进行了试用,它运行良好 - 因此我尝试将其合并到 DQL 查询中,如下所示:
$query = $em->createQuery("SELECT u FROM AppBundle:Customer c WHERE SUBSTRING_INDEX(SUBSTRING_INDEX(c.contact_name, ' ', 3), ' ', -1) LIKE :letter");
$query->setParameter('letter','%'.$letter.'%');
其中 $letter
通过来自 CRM 的请求传递。但是,我在尝试运行时从 Symfony 收到以下错误:
[Syntax Error] line 0, col 41: Error: Expected known function, got 'SUBSTRING_INDEX'
我的猜测是 Doctrine 不识别 SUBSTRING_INDEX 函数?有没有其他方法可以做我需要做的事情,或者有什么方法可以让 Doctrine 识别这个功能?
最佳答案
Doctrine 无法将 SUBSTRING_INDEX 识别为函数。
您可以导入 Doctrine Extension识别它或更改您的查询 lke this sql LOWER(SUBSTRING(c.contact_name, LOCATE(' ', c.contact_name)-1))
关于mysql - SUBSTRING_INDEX 在 Doctrine 2 中不被认可,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39960287/
我是一名优秀的程序员,十分优秀!