【发布时间】:2017-10-10 10:03:37
【问题描述】:
我使用 Doctrine 的 SQL 查询生成器 (http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/query-builder.html)
并且想通过一个连接来做一个更新案例。我知道这里不支持加入。所以我这样做:
$query = $dbalQueryBuilder->update('s_articles_attributes', 'aa')
->set('aa.fp_pos_days', ':days')
->where('aa.articledetailsID IN (SELECT a.id FROM s_articles a WHERE a.supplierID IN (:supplierIds))')
->setParameter('days', $days_string)
->setParameter('supplierIds', $supplierIds)
->execute();
$supplierIds 是string(39) "3,4,26,28,31,36,37,38,48,49,55,56,64,82"
当我运行这个查询时,什么也没有发生。当我这样做时:
$query = $dbalQueryBuilder->update('s_articles_attributes', 'aa')
->set('aa.fp_pos_days', ':days')
->where('aa.articledetailsID IN (SELECT a.id FROM s_articles a WHERE a.supplierID IN (3,4,26,28,31,36,37,38,48,49,55,56,64,82))')
->setParameter('days', $days_string)
->execute();
它工作正常。有人知道为什么吗?那我做错了吗?我需要使用那个变量...
【问题讨论】:
标签: mysql symfony doctrine-orm