Doctrine2 的查询构建器子字符串帮助器方法的正确语法

2024-02-22

好吧,这个问题可能是由于我对查询生成器帮助器方法的理解模糊,但我一生都找不到使用子字符串方法的正确方法。

我试图返回以指定字母数字值开头的所有结果。下面的代码不会引发任何错误,但也不会返回任何结果。我已经搜索过谷歌,但显然几乎没有任何内容显示如何使用子字符串。我想让它在查询生成器中工作,但我可能必须使用 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')
        );

Thanks!


SUBSTRING 必须是基于 1 的。

The MySQL手册 http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substring states:

对于所有形式的 SUBSTRING(),第一个字符的位置 要从中提取子字符串的字符串被视为 1.

With Oracle http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions162.htm:

SELECT SUBSTR('ABCDEFG',3,4) "Substring"
     FROM DUAL;

Substring
---------
CDEF

来自Transact-SQL 手册 http://msdn.microsoft.com/en-us/library/ms187748.aspx:

SELECT LastName, SUBSTRING(FirstName, 1, 1) AS Initial
FROM Person.Person
WHERE LastName like 'Barl%'
ORDER BY LastName

您可以从这些示例中看到,它们也正在使用基于一的(但是,Oracle 将假设1当给予0).

只需更改您的substring参数为't.sortTitle', 1, 1它会正常工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Doctrine2 的查询构建器子字符串帮助器方法的正确语法 的相关文章

随机推荐

  • Selenium WebDriver C# 使用 ChromeDriver 和 FirefoxDriver 的完整网站屏幕截图

    当我使用 ChromeDriver 截取屏幕截图时 我会得到与我的视口大小相同的屏幕 当我使用 FirefoxDriver 截取屏幕截图时 我得到了我想要的 即网站的全屏打印 ChromeDriver 声明如下 IWebDriver dri
  • 如何将 .NET Compact Framework 添加到智能设备 CAB 项目中?

    我正在开发一个 VS2008 智能设备应用程序 其中包含用于部署的智能设备 CAB 项目 我惊讶地发现此安装程序项目在必要时不会安装 NET Compact Framework 可以这样做吗 这可以通过一些工作来完成 看自动将多个 CAB
  • 如何使用 jquery 清除文本区域

    这个问题已经得到解答 但为了将来的参考 这里有一个完整的例子 您可以根据需要多次单击 添加 按钮和 清除 按钮 它就会起作用 但是 一旦您在文本框中输入内容 清除和添加按钮就不起作用
  • 正确使用电子

    我想进入 Electron 并且我已经开始学习它 但是我认为我不太明白应该如何使用它 根据我收集的信息 使用 Electron 我能够创建跨桌面应用程序 铬 with HTML CSS 和 JavaScript并在后台执行任务 NodeJS
  • 返回 void* 的 C++/C 函数指针

    我正在尝试调用一个带有参数的函数 void void int const char 但我不知道如何将这些参数传递给函数 Example void ptr int int function int int void int 我试图像这样调用该
  • 如何在 CodeIgniter 中检查请求是否是通过 AJAX 发出的?

    如何检查请求是否是 AJAX 我正在使用 CodeIgniter 我有一个链接 当它单击时 它将打开弹出对话框窗口 这是通过 ajax 请求控制器名称来完成的login window 代码点火器 Here is the controller
  • pip 未能为 scipy 构建轮子

    我刚刚下载了新的python 3 8我正在尝试安装scipy使用以下内容进行封装 pip3 8 install scipy 但是构建失败并出现以下错误 Failed to build scipy ERROR Could not build
  • 如何重构这个?

    我试图重构这个 class AClass string Property1 get set string Property2 get set string Property3 get set void AMethod AClass othe
  • symfony2主义选择IFNULL

    好的 我有这个代码 SELECT IFNULL s2 id s1 id AS effectiveID IFNULL s2 status s1 status AS effectiveStatus IFNULL s2 user id s1 us
  • dplyr: case_when 涉及很多情况

    我有两个数据框 set seed 002 data1 lt data frame cbind a1 sample letters 8 replace TRUE a2 rpois 8 10 stringsAsFactors FALSE dat
  • 复选框已全部单击

    我想在单击任何子项时选择父项 这段代码正在检查和检查 function child on click function parent this prevAll parent if this is checked parent prop ch
  • 如何避免 Java 中的 switch-case 语句[重复]

    这个问题在这里已经有答案了 我有一个 TriggerType 枚举 可以在其中添加不同的触发器 public enum TriggerType meta data list toggle 这些触发器类型在不同的处理程序 例如组件 仪表板等
  • 如何为 Facebook 应用程序设置画布 url?

    这个问题之前已经被问过很多次了 但是最近 Facebook 开发者网站显然发生了变化 因此该解决方案在任何地方都找不到 Here s what the problem looks like 抱歉 您使用的应用程序配置错误 请稍后重试 Now
  • 以编程方式在音频元素上设置当前时间属性会导致事件侦听器无限期地触发

    正如标题所述 当设置currentTime以编程方式指定音频元素的属性 设置该值后 事件侦听器将无限期地反复触发 音频将尝试播放 但由于正在进行太多处理 音频将跳过 我的浏览器将开始变得无响应 我通过删除对的绑定解决了这个问题current
  • Crypto.Signature.PKCS1_v1_5 和 Crypto.Signature.pkcs1_15 有什么区别?

    我想知道两者之间有什么区别Crypto Signature PKCS1 v1 5 and Crypto Signature pkcs1 15 In the 文档 https www pycryptodome org en latest sr
  • 为什么位图数据没有通过Flash发布到服务器端?

    这是我用来将位图数据发布到服务器端的代码 PHP private function savePicToServer bmpData BitmapData void trace in savePicToServer trace bmpData
  • 正则表达式在数字之间替换

    我想要替换以下时间码 00 04 02 01 gt 00 04 02 01 如何用冒号替换两个数字之间的空格 我想出了 d s d 但这显然也包括数字 捕获您的数字 然后在替换时使用它们 d s d 用 来代替 1 以下示例使用 JavaS
  • 在 Swift 中添加视图控制器作为子视图

    我正在尝试使用 swift 构建一个简单的计算器应用程序 我创建了两个具有基本和高级选项的视图控制器 早些时候在 Obj C 中曾经这样做过 AViewController alloc initWithNibName nibName bun
  • C++ - 重载 [] 运算符

    我有一个模板类数组 template
  • Doctrine2 的查询构建器子字符串帮助器方法的正确语法

    好吧 这个问题可能是由于我对查询生成器帮助器方法的理解模糊 但我一生都找不到使用子字符串方法的正确方法 我试图返回以指定字母数字值开头的所有结果 下面的代码不会引发任何错误 但也不会返回任何结果 我已经搜索过谷歌 但显然几乎没有任何内容显示