2015-02-11 77 views
1

這樣可以很清楚我有這個字段使用通配符SQL中的文本字段搜索詞

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

您可以分享代碼,您如何進行查詢? – 2015-02-11 03:50:02

+0

我編輯了我的問題先生 – 2015-02-11 14:23:12

回答

0

如果你使用MySQL中,你可以試試這個:

<?php 
    $q = Input::get('searchbox'); 
    $results = DB::table('table') 
     ->whereRaw("MATCH(columntobesearch) AGAINST(? IN BOOLEAN MODE)", 
      array($q) 
     )->get(); 

Ofcourse您需要與

準備表全文搜索中遷移文件
DB::statement('ALTER TABLE table ADD FULLTEXT search(columntobesearch)'); 

無論如何,這不是執行FTS的更具擴展性和高效率的方式。 對於可擴展且可靠的全文搜索,我強烈建議您參閱elasticsearch並實施任何Laravel package來完成此任務

+0

不錯的答案先生,但我只是不能理解這部分「反對(?在布爾模式)」,什麼是在布爾模式意味着什麼? – 2015-02-11 14:19:19

+0

我編輯了我的答案先生,我展示了我的完整代碼 – 2015-02-11 14:22:52

+0

您可以在此鏈接中參閱mysql文檔以進行全文搜索:http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean。 html – 2015-02-11 19:25:36

相關問題