为了更清楚,我有这个字段
Columntobesearch
aword1 bword1
aword2 bword2
aword3 bword4
现在我想要做的是使用sql通配符进行搜索,所以我所做的就像这样
%searchbox%
我在搜索的两端放置了通配符,但它搜索的内容只是该字段的第一个字
当我搜索“aword'所有字段都在显示,但是当我搜索“bword'什么都没有显示,请帮助。
这是我的完整代码
$Input=Input::all();
$makethis=Input::flash();
$soptions=Input::get('soptions');
$searchbox=Input::get('searchbox');
$items = Gamefarm::where('roost_hen', '=',Input::get('sex'))
->where($soptions, 'LIKE','%' . $searchbox . '%')
->paginate(12);
答案 0 :(得分:0)
如果您使用mysql,可以试试这个:
<?php
$q = Input::get('searchbox');
$results = DB::table('table')
->whereRaw("MATCH(columntobesearch) AGAINST(? IN BOOLEAN MODE)",
array($q)
)->get();
当然,您需要使用
在迁移文件中准备表格以进行全文搜索DB::statement('ALTER TABLE table ADD FULLTEXT search(columntobesearch)');
无论如何,这不是更具可扩展性和效率的FTS方式。 对于可扩展且可靠的全文搜索,我强烈建议您查看elasticsearch并对此任务实施任何Laravel package