select `lesson`.*
from `lesson`
inner join `lesson_language` on `lesson_language`.`lesson_id` = `lesson`.`id`
left join `content` on `content`.`lesson_id` = `lesson`.`id`
left join `lesson_role` on `lesson_role`.`lesson_id` = `lesson`.`id`
left join `lesson_brand` on `lesson_brand`.`lesson_id` = `lesson`.`id`
left join `lesson_category` on `lesson_category`.`lesson_id` = `lesson`.`id`
where (`lesson_language`.`name` LIKE '%washer and dryer maintenance%')
and `lesson`.`deleted_at` is null
Я пытаюсь найти «обслуживание стиральных и сушильных машин», и эта запись существует в базе данных.
Почему не извлекаются правильные записи?
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); }); } } [/code] Этот оператор else не работает. Запрос для этого: [code]select `lesson`.* from `lesson` inner join `lesson_language` on `lesson_language`.`lesson_id` = `lesson`.`id` left join `content` on `content`.`lesson_id` = `lesson`.`id` left join `lesson_role` on `lesson_role`.`lesson_id` = `lesson`.`id` left join `lesson_brand` on `lesson_brand`.`lesson_id` = `lesson`.`id` left join `lesson_category` on `lesson_category`.`lesson_id` = `lesson`.`id` where (`lesson_language`.`name` LIKE '%washer and dryer maintenance%') and `lesson`.`deleted_at` is null [/code] Я пытаюсь найти «обслуживание стиральных и сушильных машин», и эта запись существует в базе данных. Почему не извлекаются правильные записи?