DQL请求从=到IN

时间:2017-08-16 15:18:49

标签: symfony dql

我对一个字段的IN指令有一个问题...也许你可以看到比我更好的事情。
问题出在waves参数上。

我在我的数据库中得到了这个配置字段...而且这个字段包含一个json

{ 
 "typeId":"10,57",
 "codeVague":"ITM1702A,ITMTEST"
}

这个请求里面的sql返回结果:

SELECT v.id,v.`vague_code`, v.`date_fin_ultime`,m.*

FROM Vague v

            INNER JOIN Enquete e ON e.`vague_id` = v.`id`
            INNER JOIN Mission m ON m.id = e.`mission_id`
            INNER JOIN Contrat c ON c.id = m.`contrat_id`
            INNER JOIN `User` u ON u.`enqueteur_id` = e.`enqueteur_id`
            INNER JOIN `PointDeVente` p ON p.id = e.`pdv_id`

WHERE v.`vague_code` IN ('ITM1702A','ITMTEST')
AND type_id IN (10,57)

但是当我尝试从我的symfony控制器做同样的事情时...我得到一个空结果

$sql="SELECT v.id,v.codeVague, v.date_fin_ultime,c.distance,p.adresse1,p.code_postal,p.ville,m
          FROM McInvestigatorBundle:Vague v
                    INNER JOIN McInvestigatorBundle:Enquete e WITH e.vague_id = v.id
                    INNER JOIN McInvestigatorBundle:Mission m WITH m.id = e.mission_id
                    INNER JOIN McInvestigatorBundle:Contrat c WITH c.id = m.contrat
                    INNER JOIN McInvestigatorBundle:User u WITH u.enqueteur_id = e.enqueteur_id
                    INNER JOIN McInvestigatorBundle:PointDeVente p WITH p.id = e.pdv_id
          WHERE v.codeVague IN (:waves)
                    AND e.type_id IN (:type_id)
                    AND m.enqueteur_id=:enq_id
                    ORDER BY m.date_rea_prev ASC";

    $results= $em->createQuery($sql)->setParameters([
        'waves' => $waves,
        'type_id' => $type_id,
        'enq_id' => $enq_id,
    ])->getResult();

奇怪的是我没有使用type_id,它运行正常。 但是,这些浪潮并不是同一个故事......

事实上,只有在json中只有一个值

时,它才有效

"codeVague":"ITM1702A"正在发挥作用 "codeVague":"ITM1702A,ITMTEST"无效。

我已经在$ wave中尝试了这些字符串。

"ITM1702A,ITMTEST"以及"'ITM1702A','ITMTEST'""'ITM1702A,ITMTEST'"

感谢您的帮助!

编辑:问题解决了,谢谢Veve。

0 个答案:

没有答案