Вот мой запрос:Использует два вложенных предложения WHERE?
$first = DB::table('news')
->selectRaw('"news" as tableName, id, title, description, imgPath')
->where(function($query) use ($q) {
$query->whereRaw("MATCH(title,description) AGAINST(? IN BOOLEAN MODE)", array($q));
});
$results = DB::table('productions')
->selectRaw('"productions" as tableName, id, title, description, imgPath')
->where(function($query) use ($q) {
$query->whereRaw("MATCH(title,description) AGAINST(? IN BOOLEAN MODE)", array($q));
})
->unionAll($first)
->get();
Как вы видите, есть where()
, а также есть в нем whereRaw()
.. это правильно?
Результат в порядке, я имею в виду, что это точно так, как ожидалось. Просто я беспокоюсь о производительности. вы знаете, я могу это сделать только одним where()
. Однако в настоящее время он работает, но я пугаю, если набор данных будет огромным, тогда, возможно, он будет медленным.
В любом случае, мой код хороший?
Я не знаю, почему вы используете закрытие только для одного условия. Но это не имеет значения с точки зрения производительности sql, потому что он построит один и тот же SQL-запрос. –