クエリを作成すると、教義によって「()」が自動的に削除されました。
これが私のクエリです:
$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() を使用した場合の結果は次のとおりです。
FROM MstFont msf WHERE (full_font_name LIKE ? OR
full_font_name LIKE ? OR
full_font_name LIKE ? OR
full_font_name = ? OR
font_name = ?) AND ((tenant_id = 0 OR tenant_id = ?))
$query->getSqlQuery() を使用した場合の結果は次のとおりです。
SELECT m.font_id AS m__font_id, m.tenant_id AS m__tenant_id, m.font_name AS m__font_name, m.font_file AS m__font_file, m.font_category AS m__font_category, m.vendor AS m__vendor, m.full_font_name AS m__full_font_name, m.font_name_ap AS m__font_name_ap FROM mst_font m WHERE (m.full_font_name LIKE ? OR
full_font_name LIKE ? OR
full_font_name LIKE ? OR
full_font_name = ? OR
font_name = ? AND (m.tenant_id = 0 OR m.tenant_id = ?))
この問題の説明を手伝ってくれる人はいますか?