dongyu4863 2017-05-11 13:35
浏览 36

显示来自MySQL的最新的5个搜索结果

I have a tool where user enters some search value and that value is stored in another table for logging purposes. Now, I want to display last 5 search results for that user.

After the search is saved, I query it with this function:

public function scopeGetUserSearch($query)
    {
        return $query->select('searchValue')
            ->where('userID', '=', Auth::user()->id)
            ->orderBy('created_at', 'desc')
            ->distinct()
            ->take(5);
    }

I need to distinct the values since user can search same term for many times. (e.g. if user searches for term "Playstation 4" 4 times, it needs to be displayed as once)

And then I display the result in blade:

@foreach($bsUserSearch as $b)
    <div id="brand_box" class="border left" style="min-width: 30px;cursor:pointer;text-align:center;" onclick="$('#company').val('{{$b->searchValue}}');">{{$b->searchValue}}</div>   
@endforeach

Problem is when user searches for "Playstation 4" again, it is not displayed in the first place even though the created_at field is the latest. Or if 5 places is already populated, the term "Playstation 4" won't be shown at all.

So, if I have these search results:

  1. XBox 360
  2. PC
  3. Nintendo
  4. PlayStation 4
  5. Wii

And if user searches again for "PlayStation 4", I need to have it on the top of the list. Like this:

  1. PlayStation 4
  2. XBox 360
  3. PC
  4. Nintendo
  5. Wii
  • 写回答

1条回答 默认 最新

  • douyueju2912 2017-05-11 14:18
    关注

    Based on this answer, I got this solution

    public function scopeGetUserSearch($query)
    {
        return $query->select('searchValue', \DB::raw('max(created_at)'))
                     ->where('userID', '=', Auth::user()->id)
                     ->groupBy('searchValue')
                     ->orderBy(\DB::raw('max(created_at), searchValue'), 'desc')
                     ->take(5);
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么