因此,在这种情况下,我正在使用 Laravel,但这可能只是 MySQL“问题”。我有一个简单的数据库表,只有一个
name
字段,其中有两条记录:
1:B-前
2:前线
我有一个名为:“B-Frontliner”的字符串
我正在尝试根据我的字符串从数据库中获取结果。在我看来,我应该通过以下查询从数据库中获取这两个结果:
$results = 艺术家::where('name', 'LIKE', '%' . $string . '%')->get();
但我没有得到任何结果。即使使用
strtolower
等,也没有结果。出于测试目的,也不是简单地将所有内容手动设置为小写。
我的理解完全错误还是我的查询根本错误?
不,您不会得到任何结果,因为数据库中的两行都不包含文本
B-Frontliner
(在全部或部分字段中)。你问的是:
“显示名称中包含文字
的所有艺术家”B-Frontliner
他们都没有。
相比之下,输入
Front
作为搜索词将返回两个结果,因为该文本 does 出现在两行名称字段中的某处。
搜索
B-Front
将返回第一行。或者,例如,搜索 liner
将返回第二行。