我想使用TYPO3理论来更新我的网站。 但是在我的命令中,我想使用一个ExtractValue,并且学说像字段一样理解该参数,而不像sql的函数那样理解。
这是我的代码:
$statement = $queryBuilder
->addSelectLiteral(
)
...
->where(
$queryBuilder->expr()->eq('ExtractValue(n.flexform, \'//field[@index="erasmusStatus"]/value[@index="vDEF"]\')', 1);
)
SQL中的结果:
... WHERE (`'ExtractValue(n`.`flexform, \'//field[@index=\"erasmus\"]/value[@index=\"vDEF\"]\')'` = 1))
您可以看到SQL像字段一样接受'ExtractValue(n')。
但是我想要:
...WHERE ('ExtractValue(`n`.`flexform`, \'//field[@index=\"erasmus\"]/value[@index=\"vDEF\"]\')' = 1))
您知道执行此操作的QueryBuilder或表达式吗? 谢谢
答案 0 :(得分:0)
将其设置为字符串是什么?
...
->where(
$queryBuilder->expr()
->eq('ExtractValue(`n.flexform`,
//field[@index="erasmusStatus"]/value[@index="vDEF"]\')',
1);
)
答案 1 :(得分:0)
It's work with this :
...
->where(
str_replace('`',"'", $queryBuilder->expr()->eq(1, 'ExtractValue(`n.flexform`,//field[@index="erasmusStatus"]/value[@index="vDEF"]\')');
)
答案 2 :(得分:0)
您可以在where条件下使用纯字符串:
src/team/riels-first-post.md
这在更多方法中是可能的,例如andX:
->where(
'ExtractValue(n.flexform, \'//field[@index="erasmusStatus"]/value[@index="vDEF"]\') = 1'
)