我在mysql查询中遇到了匹配字符串的问题,我使用的是Laravel。我的问题就在这条线上
-> where ('service', 'like', '%'. $request->get('service') . '%')我请求的服务是hair cut women,数据库中的service是Hair Women Style & Cut。由于某种原因,这两个字符串不匹配。
所以,
play game和play good two & game不匹配
上面的查询应该用于此匹配吗?特别的牧师&是否妨碍了比赛?我对MySQL没有经验,所以我在寻求帮助。
发布于 2017-12-06 17:09:42
%string%将string与其前后的0或多个字符匹配。
%hair cut%将匹配cool hair cut,但不匹配hair for cut,因为其中混合了不匹配的单词。
如果您希望匹配单词,则必须拆分搜索项并创建多个where子句。
$terms = explode(" ", $request->get('service'));
for ($terms as $term)
$query->where('service', 'like', '%'. $term . '%')生成的查询将类似于
WHERE service LIKE '%hair%' AND service LIKE '%cut%'https://stackoverflow.com/questions/47679632
复制相似问题