は私のクエリです:2つのネストされた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()
がある...それは正しいでしょうか?
結果は大丈夫です。予想通りです。パフォーマンスが心配です。あなたは知っている、私は1つだけwhere()
でそれを行うことができると思います。しかし現在でもうまくいきますが、データセットが巨大であれば怖いので、遅くなるかもしれません。
とにかく、私のコードは良いですか?
の
paginate()
機能を使用するように助言しますなぜ1つの条件に対してのみクロージャを使用するのですか。しかし、それは同じSQLクエリを構築するので、SQLのパフォーマンスの点では重要ではありません。 –