搜尋

首頁  >  問答  >  主體

laravel使用DB模糊查詢問題

文件有範例:https://laravel.com/docs/5.3/...
如下:

$users = DB::table('users')
                ->where('name', 'like', 'T%')
                ->get();

問題1:
上面的範例只搜尋一個欄位name,如果我有一張articles表,有title和content兩個欄位需要模糊搜索,該怎麼寫呢?

$keywords= $request->input('keywords');
$articles = DB::table('articles')
                ->where('content', 'like', $keywords.'%') //这一句里面不止content,而是title和content两个字段
                ->get();

問題2:
搜尋中文還需要別的什麼設定或操作嗎?

PHPzPHPz2783 天前762

全部回覆(2)我來回復

  • 为情所困

    为情所困2017-05-16 16:51:26

    $keywords= $request->input('keywords');
    $articles = DB::table('articles')
                    ->where('content', 'like', $keywords.'%')
                    ->orWhere('title', 'like', $keywords.'%')
                    ->get();
    

    使用Like搜尋中文是不需要其它設定或操作的,對於這種全文搜尋操作不建議使用like,最好是使用搜尋引擎如ElasticSearch或Sphinx等工具來實現

    回覆
    0
  • 高洛峰

    高洛峰2017-05-16 16:51:26

    全文搜尋可以試試

    select * from articles where match (title,content) against ('keywords');

    回覆
    0
  • 取消回覆