我正在尝试select根据if-else条件逻辑动态列。
$records = DB::table('dmf_result_set_assign as rsa')
->select(
'pmu.s_image_url', 'pmu.r_image_url', 'pmu.r_image_url_main', 'pmu.product_sku',
'pmu.product_name', 'pmu.product_id', 'pmu.ai_result',
'pmu.confidence_score', 'pmu.request_id',
if($distinct_only_flag) {
DB::raw('DISTINCT pmu.hash_id'),
'pmu.run_date_id',
'pmu.s_product_url',
'pmu.r_product_url',
'pmu.s_price',
'pmu.s_mpn',
'pmu.s_upc',
'pmu.s_asin',
'pmu.s_gtin',
'pmu.s_variant_info',
'pmu.s_brand',
'pmu.s_category',
'pmu.s_description'
} else {
'pmu.hash_id',
'fr.filter_name',
'rsa.human_verdict', 'rsa.assigned_to',
DB::raw('CONCAT(usr.first_name, " ", usr.last_name) as cloud_user')
}
)
->join('dmf_product_match_unmatches as pmu', DB::raw('BINARY `pmu`.`hash_id`'), '=', 'rsa.hash_id')
->join('dmf_filter_rules as fr', 'fr.id', '=', 'rsa.filter_rule_id')
->leftjoin('dmf_user_tokens as tkn', 'tkn.id', 'rsa.assigned_to')
->leftjoin('users as usr', 'usr.id', '=', 'tkn.user_id')
->get();
我收到此错误:
(1/2) FatalThrowableError
Parse error: syntax error, unexpected 'if' (T_IF)
我无法弄清楚这个问题。两者看起来很相似,但其中一种有效,另一种则无效。
还有其他方法可以实现此目的吗?
慕勒3428872