【发布时间】:2018-03-08 23:41:58
【问题描述】:
请问如何在 TYPO3 数据库查询中为“WHERE”子句动态添加额外条件?新的 TYPO3 版本 8 文档说明了如何进行固定查询,而不是可变查询。
过去,我可以创建一条 SQL 语句并像这样动态修改它:
if (condition) {
$strWhere = 'some SQL';
} else {
$strWhere = 'same SQL with extra bits';
}
$dbRes = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows(
"*", // SELECT ...
"tableName", // FROM ...
$strWhere , // WHERE...
etc.
我看不到如何使用 Querybuilder 执行此类操作。我想要实现的是这样的表达式
if (condition) {
->where($queryBuilder->expr()->eq(... ))
}
else {
->where($queryBuilder->expr()->eq(... ))
->andWhere($queryBuilder->expr()->eq(... ))
}
任何提示将不胜感激。谢谢。
【问题讨论】:
-
和你上面建议的差不多。您可以在一个数组中收集多个 where 条件 ($queryBuilder->expr()),然后使用 orX 或 andX 连接它们: $queryBuilder->andWhere($queryBuilder->expr()->orX(... $yourWhereExperessions);
-
感谢 deadfishli,您的回复非常有帮助,您也很友善。抱歉延迟回复。
标签: typo3 query-builder