我认为这将很容易解决,但是我无法弄清楚。我正在尝试使用where()
语句过滤数据库。
Laravel文档(https://laravel.com/docs/5.4/queries)指出:
DB::table('satellites')->where('satname', 'falcon')->get();
我尝试按照文档中的说明进行查询,但是不幸的是,该方法无法正常工作。
我正在尝试使用名为
falcon
的数据库中satname
列中的单词satellites
过滤该数据库。我也尝试过:
->where('satname', '=', 'falcon')
。我认为我只是在犯一个简单的错误而忘记了一些东西!
最佳答案
您说“过滤器”,然后通过查看注释,这似乎意味着不完全搜索,即不完全是“猎鹰”,而是包含猎鹰的东西。您正在寻找的是LIKE运算符。
DB::table('satellites')
->whereRaw("satname LIKE 'falcon%'")
->get();
这将返回任何以“猎鹰”开头的卫星名称:“猎鹰1”,“猎鹰9”,“猎鹰318929”等。
要获取所有包含猎鹰的内容,请使用“ satname LIKE'%falcon%'”。其中包括:猎鹰9,测试猎鹰,测试猎鹰82等。