我有一个邮政编码区域表,其结构如下:
|id |post_district | search |local_authority |gov_region |country |
|31 |BA22 |BA22, BA2*, BA*|South Somerset |South West |England |
|32 |BA9 |BA9, BA* |South Somerset |South West |England |
(所有列都是string类型)。搜索列包含邮政编码的可能通配符变体。
我有问题创建一个将传入代码的函数(可能带有通配符,因此搜索)并返回匹配的所有行。
如下所示:
function SearchPostDistrict($code){
return DB::table('postcodes_area')->where($code, is_substring($this))->get() //PSEUDO-CODE
}
如果我可以有一个数组列类型并且只有一个where子句
,这会更简单->whereIn($code, 'search')
在laravel 5.4中是否有可能拥有某种复杂的查询构建器功能?
或者,我可以返回所有邮政编码区域(其中有2451条记录)。然后遍历每个检查$ code是否是记录搜索变量的子字符串,并自己构建一个我返回的集合。
这会是性能问题吗?这是Laravel的一个我不太了解的一面。这对我有什么影响?
解决方案: 我相信我可以使用
function SearchPostDistrict($code){
return DB::table('postcodes_area')->where('search', 'LIKE', '%'.$code.'%')->get();
}
答案 0 :(得分:0)
您可以通过以下任何过滤器找到特定帖子:
$posts = Post::all(); //Send all posts
$posts = Post::where('title','Post Two')->get(); //get title as mentioned
$posts = DB::select('Select * from posts'); //If you want write query then "use DB;" at top of the Controller file
$posts = Post::orderBy('title','desc')->take(1)->get(); // Get one post
$posts = Post::orderBy('title','desc')->get();