3
我有問題設置基於語句平等學說運營商更新查詢的設置
我想值激活特定uc
和關閉所有其他ucs
。
(uc.collection = :collectionId)
應該返回true或false,以便正確處理。
的QueryBuilder:
$queryBuilder = $this->getEntityManager()->createQueryBuilder();
$queryBuilder->update('TestBundle:UserCollection', 'uc')
->set('uc.active', '(uc.collection = :collectionId)')
->where('uc.user = :userId');
$queryBuilder->setParameter('collectionId', $collectionId);
$queryBuilder->setParameter('userId', $userId);
輸出DQL:
UPDATE TestBundle:UserCollection uc
SET uc.active = (uc.collection = :collectionId) WHERE uc.user = :userId
getSQL錯誤:
[Syntax Error] line 0, col 81: Error: Expected
Doctrine\ORM\Query\Lexer::T_CLOSE_PARENTHESIS, got '='
這裏的SQL我想:
UPDATE user_collections AS uc SET uc.active = (uc.idCollections = 1)
WHERE uc.idUsers = 74
呃,爲什麼你會在第一個地方使用括號? –
沒有我得到這個錯誤'[Syntax Error] line 0,col 80:Error:Expected end of string,got'='' –
你有這個理由。我會寫一個答案,爲了可讀性,這可能會幫助你... –