php - TYPO3:在 Doctrine where 子句中使用 BINARY 进行区分大小写的搜索
问题描述
我目前正在将旧的 TYPO3 应用程序从$GLOBALS['TYPO3_DB']
Doctrine 迁移。
在旧应用程序中,使用 BINARY 运算符进行区分大小写的搜索:
$whereClause = 'BINARY myfieldname LIKE "%' . $query . '%"';
我试图像这样迁移它:
$queryBuilder->expr()->like('BINARY myfieldname', $queryBuilder->createNamedParameter('%' . $queryBuilder->escapeLikeWildcards($query) . '%'))
另一种尝试是这样的:
$queryBuilder->expr()->like('BINARY `myfieldname`', $queryBuilder->createNamedParameter('%' . $queryBuilder->escapeLikeWildcards($query) . '%'))
这总是以错误消息结束:
Unknown column 'BINARY `label`' in 'where clause'
不幸的是,无法更改 MySQL 服务器设置中的任何内容。
我发现了这个问题,但它对我没有帮助。
还有其他想法吗?
解决方案
这个解决方案对我有用(感谢 Thomas 的提示):
$whereClause = $queryBuilder->expr()->like(
'label',
$queryBuilder->createNamedParameter('%' . $queryBuilder->escapeLikeWildcards($query) . '%')
);
$whereClause = 'BINARY ' . $whereClause;
$queryBuilder->add('where', $whereClause);
推荐阅读
- python - 字典python的空间复杂度
- python-3.x - 如何将日期作为熊猫数据框中的一列?
- git - Bitbucket 恢复到特定的提交,然后使用消息提交,然后推送到功能分支
- php - 如何将图像发布到此 Web 服务
- python - 使用熊猫转换嵌套数组/列表中的excel列
- sql - 使用 Microsoft Query 和 SQL 过程返回多行数据
- html - 如何在本地工作时在 HTML 文件中显示 SVG Sprite 图标?
- javascript - Discord.js 自定义表情符号错误看起来很简单,但我该如何解决?
- javascript - 将行号添加到预格式化文本
- django - React 和 Django 如何真正协同工作