我正在Laravel構建一個應用程序。我不能決定用Match()
或Like
進行文本搜索。MySql無法在LIKE和MATCH之間進行文本搜索
我只想對一列進行文本搜索,即Varchar(42)
。
我也會過濾一些Where()
語句的查詢,所以它不會對所有行進行文本搜索。
我正在使用mysql 5.6+,所以匹配我的innobd引擎。
Match()在具有大約30k行的表中表現不錯嗎?
Laravel ORM犯規支持的比賽,所以我的查詢如下所示:
$q = Input::get('query'); Post::whereRaw("MATCH(title) AGAINST(? IN BOOLEAN MODE)", array($q))->get();
我需要消毒「$ Q」,以從SQL注入安全嗎?由於我使用的是whereRaw()
是的'whereRaw'是安全的。使用綁定('?')可以防止SQL注入。你的問題的其餘部分在@ GordonLinoff的答案中進行了介紹...... – lukasgeiter 2015-02-08 14:19:55