gpt4 book ai didi

php - 使用两个嵌套的 WHERE 子句可以吗?

转载 作者:行者123 更新时间:2023-11-30 22:10:13 25 4
gpt4 key购买 nike

这是我的查询:

    $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() 就可以做到。然而目前它也能正常工作,但我担心如果数据集很大,那么它可能会很慢。

无论如何,我的代码好吗?

最佳答案

不需要在 where() 闭包中添加单个 where。你也可以在没有它的情况下编写你的代码:

$first = DB::table('news')
->selectRaw('"news" as tableName, id, title, description, imgPath')
->whereRaw("MATCH(title,description) AGAINST(? IN BOOLEAN MODE)", array($q));

$results = DB::table('productions')
->selectRaw('"productions" as tableName, id, title, description, imgPath')
->whereRaw("MATCH(title,description) AGAINST(? IN BOOLEAN MODE)", array($q));
->unionAll($first)
->get();

但是如果您真的很关心数据集变大时的性能,那么我建议您使用 paginate() 函数而不是 get()

关于php - 使用两个嵌套的 WHERE 子句可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40318008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com