TYPO3中的ExtractValue

时间:2018-12-18 14:34:27

标签: php mysql sql typo3

我想使用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或表达式吗? 谢谢

3 个答案:

答案 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'
   )