我对一个字段的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。