mysql SQL查询在Laravel中没有填充正确的记录

fzwojiic  于 2023-05-05  发布在  Mysql
关注(0)|答案(1)|浏览(125)

我正在尝试用搜索词过滤数据。但它不填充数据。有谁能帮我吗?下面是我的代码:

$query = Lesson::select('lesson.*')
                ->join('lesson_language', 'lesson_language.lesson_id', 'lesson.id')
                ->leftJoin('content', 'content.lesson_id', 'lesson.id')
                ->leftJoin('lesson_role', 'lesson_role.lesson_id', 'lesson.id')
                ->leftJoin('lesson_brand', 'lesson_brand.lesson_id', 'lesson.id')
                ->leftJoin('lesson_category', 'lesson_category.lesson_id', 'lesson.id');
            

            // filter by search term
            if(isset($request['search_term']) && $request['search_term'] != '') {
                $term = strtolower($request['search_term']);
                $term = str_replace('"', '', str_replace("'", '', $term));

                if((clone $query)->where('lesson_language.name', 'LIKE', "{$term}%")->count()) {
                    $query->where('lesson_language.name', 'LIKE', "{$term}%");
                }
                else {

                    $searchValues = preg_split('/\s+/', $term, -1, PREG_SPLIT_NO_EMPTY);
                    $query->where(function ($q) use ($term) {
                            $q->orWhere('lesson_language.name', 'LIKE', "%{$term}%")
                                ->orWhere('lesson.content_skus', 'LIKE', "%{$term}%");
//                                ->orWhere('lesson.content_terms', 'LIKE', "%{$subTerm}%")
//                                ->orWhere('lesson.id', $subTerm);                        
                    });
                    

                }
            }

这个else语句不起作用。这是一个SQL查询。
从`lesson_language`上的`lesson`内部连接`lesson_language`中选择`lesson` .*。`lesson_id` = `lesson`。`id`左连接`content`在`content`上。`lesson_id` = `lesson`。`id`左连接`lesson_role`上的`lesson_role`。`lesson_id` = `lesson`。`id`左连接`lesson_brand`上的`lesson_brand`。`lesson_id` = `lesson`。`id`向左加入`lesson_category`上的`lesson_category`。`lesson_id` = `lesson`。`id`其中(`lesson_language` .`name` LIKE '%洗衣机和烘干机维护%')和`lesson`。`deleted_at`为空
有人能帮我吗?
我试图搜索“洗衣机和烘干机维修”,此记录存在于数据库中。但它不取。

相关问题