Doctrine “删除”原则;()";自动地
当我构建一个查询时,条令自动删除了“()” 我的问题是:Doctrine “删除”原则;()";自动地,doctrine,Doctrine,当我构建一个查询时,条令自动删除了“()” 我的问题是: $query = MstFontTable::getInstance()->createQuery('msf'); $query->where('(full_font_name LIKE ? OR full_font_name LIKE ? OR full_font_name LIKE ? OR full_font_name = ?
$query = MstFontTable::getInstance()->createQuery('msf');
$query->where('(full_font_name LIKE ? OR
full_font_name LIKE ? OR
full_font_name LIKE ? OR
full_font_name = ? OR
font_name = ?)', array(trim($fontName) . ',%',
'%,' . trim($fontName),
'%,' . trim($fontName) . ',%',
trim($fontName),
trim($fontName)
)
);
$query->andWhere('((tenant_id = 0 OR tenant_id = ?))', array(intval($tenantId)));
下面是我使用$query->getDql()时的结果:
下面是使用$query->getSqlQuery()时的结果:
有人帮我解释一下这个问题吗?试着去掉多余的括号,如:
$query->andWhere('((tenant_id = 0 OR tenant_id = ?))', array(intval($tenantId)));
到
对第一个也同样如此,如:
$query->where('(full_font_name LIKE ? OR ...
到
看看会发生什么。你不需要它们,条令会为这些和/或条件加上括号
$query->andWhere('((tenant_id = 0 OR tenant_id = ?))', array(intval($tenantId)));
$query->andWhere('tenant_id = 0 OR tenant_id = ?', array(intval($tenantId)));
$query->where('(full_font_name LIKE ? OR ...
$query->where('full_font_name LIKE ? OR ...