Ver*_*tex 4 symfony doctrine-orm
好吧,这个问题可能是由于我对查询构建器帮助器方法的模糊了解,但对于我的生活,我找不到使用子字符串方法的正确方法.
我试图返回以指定的字母数字值开头的所有结果.下面的代码不会抛出任何错误,但它也不会返回任何结果.我已经搜索过Google,但显然几乎没有显示如何使用子字符串.我想在查询生成器中使用它,但我可能必须使用DQL或原始sql.
$qb->select('p', 't');
$qb->from('ContentParent', 'p');
$qb->join('p.titleCurrent', 't');
$qb->where(
$qb->expr()->eq($qb->expr()->substring('t.sortTitle', 0, 1), ':letter')
);
Run Code Online (Sandbox Code Playgroud)
谢谢!
SUBSTRING需要基于一个.
在MySQL手册状态:
对于所有形式的SUBSTRING(),将从中提取子字符串的字符串中的第一个字符的位置计为1.
使用Oracle:
SELECT SUBSTR('ABCDEFG',3,4) "Substring"
FROM DUAL;
Substring
---------
CDEF
Run Code Online (Sandbox Code Playgroud)
SELECT LastName, SUBSTRING(FirstName, 1, 1) AS Initial
FROM Person.Person
WHERE LastName like 'Barl%'
ORDER BY LastName
Run Code Online (Sandbox Code Playgroud)
您可以从这些示例中看到它们也使用了一个基础(但是,Oracle会1
在给定时使用0
).
只需将substring
参数更改为't.sortTitle', 1, 1
,它就能正常工作.
归档时间: |
|
查看次数: |
4400 次 |
最近记录: |