我认为这将很容易解决,但是我无法弄清楚。我正在尝试使用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等。

10-07 23:58