我需要爲Laravel 3.0中的全文搜索編寫一個流暢的查詢。搜索查詢是這樣的如何爲全文搜索編寫流利的查詢?
SELECT * FROM posts WHERE MATCH (tags) AGAINST ('Lorem Ipsum Dolor Sit Amet');
我一直在使用原始查詢來執行此操作,但是從原始查詢的結果不能分頁。 任何人都可以告訴我正確的方式來爲這個查詢寫一個流利的查詢嗎?
我需要爲Laravel 3.0中的全文搜索編寫一個流暢的查詢。搜索查詢是這樣的如何爲全文搜索編寫流利的查詢?
SELECT * FROM posts WHERE MATCH (tags) AGAINST ('Lorem Ipsum Dolor Sit Amet');
我一直在使用原始查詢來執行此操作,但是從原始查詢的結果不能分頁。 任何人都可以告訴我正確的方式來爲這個查詢寫一個流利的查詢嗎?
也許試試這個....?
public static function find_tags($searchtags, $take = 20)
{
$results = Posts::raw_where("match (`tags`) against (?)", array($searchtags))
->take($take)
->get();
return $results;
}
或者只是......
$searchtags = "Lorem ipsum blah";
$results = Posts::raw_where("match (`tags`) against (?)", array($searchtags))
->paginate(10);
我只是拉了這一點的空氣,雖然,現在不能測試....不是我的服務器...
實際上,您不需要執行原始選擇語句,所有必須寫入原始查詢的語句都是where()語句。那麼爲什麼你不嘗試這樣的事情呢,我目前在我的本地服務器上有一些問題,所以我不能自己測試這個,但這應該工作。
// If you're using laravel models
Posts::where_raw(sprintf("MATCH (tags) AGAINST ('%s')", $search))->paginate(10);
where_raw是laravel的無證功能之一:d,使用原始查詢時逸出的執行,所以要小心不心中還留着。
這沒有解決。它實際上是尋找一個名爲「原始」欄和「反對MATCH(標記)(\‘思想\’)」尋找 –
這是我得到的錯誤消息:SQLSTATE [42S22]:列未找到:1054未知列' 「在 'where子句' SQL原料:SELECT * FROM'posts' WHERE'raw' =? 綁定:數組( 0 =>'MATCH(tags)AGAINST(\'thought')', ) –
我很驚訝這沒有工作... – KyleK
非常感謝。這工作。 –
甜! :)很高興它確實....我無法自己測試它,所以我不確定。 – KyleK
再次嗨!你能告訴我爲什麼這不起作用嗎? $結果=文章:: raw_where( 「匹配('tags')反對()?」,數組($ searchtags)) - >獲得(); –