【问题标题】:PHP Laravel complex query with multiple options具有多个选项的 PHP Laravel 复杂查询
【发布时间】:2013-07-18 01:20:55
【问题描述】:

我有一个包含 4 个字段的搜索表单:

  1. 标题
  2. 流派 ->(单独查询以查找流派)
  3. 评分
  4. Order by ->(包含在所有查询中)

我正在尝试优化搜索功能,因为它大约有 300 行长。我所做的是写出所有可能的组合 - 应该包含在查询中。

if ( empty($title) && $genre === 'All' && $rating === '0') {}
if (!empty($title) && $genre === 'All' && $rating === '0') {}

有 8 种可能的组合,我不知道如何优化它。

【问题讨论】:

    标签: php mysql optimization laravel eloquent


    【解决方案1】:

    我想我找到了一个非常好的解决方案,它还可以让添加额外的标准变得轻而易举。

    我不知道你的班级名称是什么,所以我假设你有一个书架和一个模型书。

    所以在我设置的快速测试表上,这似乎对我有用。

    $books = new Book;
    
    if(!empty($title))
        $books = $books->where('title','=',$title);
    
    if(!empty($genre))
        $books = $books->where('genre','=',$genre);
    
    if(!empty($rating))
        $books = $books->where('rating','=',$rating);
    
    $books = $books->get();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      • 2014-12-22
      • 2021-05-18
      • 1970-01-01
      • 2013-10-04
      • 1970-01-01
      • 2012-01-01
      相关资源
      最近更新 更多