如何将数据库索引与 Datatables 和 yajra/laravel-datatables 一起使用
Posted
技术标签:
【中文标题】如何将数据库索引与 Datatables 和 yajra/laravel-datatables 一起使用【英文标题】:How to use DB indexes with Datatables and yajra/laravel-datatables 【发布时间】:2016-10-05 15:03:05 【问题描述】:到目前为止,当我尝试列过滤时,我可以使用 LIKE 或 REGEXP,但它们都在使用表索引,考虑到我需要过滤的数据量,这是一个很大的问题。
有没有办法使用索引获得完全匹配? (数据库索引)
我正在使用: https://github.com/yajra/laravel-datatables v6.11.3 和 https://datatables.netv1.10.10
【问题讨论】:
你试过这个***.com/questions/9580647/… 谢谢,但这是不同的,我的问题是关于数据表的。我想使用 yajra/laravel-datatables 实现的是使用精确匹配而不是像“%search%”或 REGEXP 那样按列搜索。我的目标是使用我的表索引来避免全表扫描。 【参考方案1】:使用 datatables laravel 包,您可以使用“filterColumn”功能在查找功能中自定义 laravel 端的参数搜索。像这样:
return Datatables::of($users)
->filterColumn('user_id', function($query, $keyword)
$query->whereRaw("CONCAT(users.id,'-',users.id) like ?", ["%$keyword%"]);
)
->make(true);
在Documentation中查看更多信息
【讨论】:
以上是关于如何将数据库索引与 Datatables 和 yajra/laravel-datatables 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
将 Ajax 与 jQuery DataTables 一起使用时,如何确定如何处理返回的数据?