【发布时间】:2018-07-22 12:05:03
【问题描述】:
我有一个查询,它获取表单详细信息,如果已分配给某个用户,则丢弃表单。
$formIds = DB::table('tbl_staff_user_details')
->select(DB::raw('GROUP_CONCAT(forms_assigned) as form_ids'))
->first();
$formIds = array_unique(explode(",", $formIds->form_ids));
if (Input::has('form_id'))
{
$sql = 'SELECT * from tbl_forms where id IN('.Input::get('form_id').')';
}
else
{
$lm_ids = Input::get('law_id');
$sql = 'SELECT *
FROM tbl_forms
WHERE lm_id IN('.$lm_ids.') AND id
NOT IN('.join(",",$formIds).')';
}
$data = DB::select($sql);
当我做dd($formIds) 时,我得到的是" "。
错误如下:
语法错误或访问冲突:1064 在第 3 行 (SQL: SELECT * FROM tbl_forms WHERE lm_id IN(1,2,3,4,5) AND id NOT IN())
如果$formIds 为空,如何触发$sql。
【问题讨论】:
-
如果 $formIds 不为空,只需放置一个 if 块,然后只触发查询。
-
@AnkitBajpai 如果 $formIds 为空,我希望 $sql 被解雇。
标签: mysql sql database laravel