我一直在使用并且仍在学习查询expr()。我有一个复杂的查询,如果先检查参数是否为''-空字符串,则无法使用。我必须使用类似以下内容的嵌套orX在andX内部对其进行检查:
->andWhere($expr->orX($expr->eq(':sid', ''), $expr->neq('s.id', ':sid')))
Run Code Online (Sandbox Code Playgroud)
注意:我知道这行可以通过先执行if检查来完成,我仅以一个示例为例,但出现错误提示:
Error: Expected Literal, got ' OR '
Run Code Online (Sandbox Code Playgroud)
我真的需要比较expr()中的空字符串,怎么办?
因为''不是空字符串。没什么,因此在DQL / SQL中它没有任何价值。通常,学说需要一个命名参数。您可以创建一个以引用空字符串或提供自己引用的空字符串。
命名参数:
$qb->expr->eq('foo', ':foo');
$qb->expr->setParameter('foo', '');
Run Code Online (Sandbox Code Playgroud)
自己引用:
$qb->expr->eq('foo', "''");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2540 次 |
| 最近记录: |