0
我要搜索特定的单词,而不是从表信。现在,我使用like
但它不是像预期:Laravel搜索特定的词
// Category Table
-----------------------------------------------------
| id | amount | updated_at |
+----------+--------------------+-------------------+
| 1 | Bread |2016-02-10 13:17:29|
| 2 | Bread Loaf |2016-02-10 13:17:29|
| 3 | Bread1 |2016-02-10 13:17:29|
+----------+--------------------+-------------------+
比如我搜索词“面包”:
$words = "bread";
$query = Category::where(function ($query) use ($words) {
$query->where('name', 'like', '%' . $words . '%');
})->get();
结果:所有面包出来。
我的预期是什么“Bread1”没有得到查询。只有面包和面包面包。
我应该添加到我的查询?
你可能想试试这个SELECT * FROM产品WHERE PRODUCT_NAME RLIKE “[[:<:]]bread[[:>:]]”; [同样的问题在这里](http://stackoverflow.com/questions/5743177/mysql-how-to-search-for-exact-word-match-using-like) –
本质上,这被评价为'WHERE名称LIKE“%面包%''意思是它可以与面包中的任何东西相匹配。它不会将其评估为单词。如果你只是添加空格,它不会匹配以面包开始或结束的任何内容。正则表达式约翰罗卡给出了一个很好的解决方案。 – Devon
@JohnRoca谢谢。它工作 – ssuhat