Laravel - 无法使用' Where'过滤数据库。查询

时间:2017-08-11 12:52:26

标签: php mysql laravel laravel-5.4

我认为这很容易解决,但我无法弄明白。我试图用where()语句过滤我的数据库。

Laravel文档(https://laravel.com/docs/5.4/queries)声明:

DB::table('satellites')->where('satname', 'falcon')->get();

我按照文档中的说明尝试了查询,但遗憾的是,这不起作用。

我正在尝试使用名为falcon的数据库中的satname列中的satellites字词过滤该数据库。

我也尝试过:->where('satname', '=', 'falcon')

我认为我只是做了一个简单的错误而忘记了某些事情!

1 个答案:

答案 0 :(得分:0)

你说"过滤,"通过查看评论,这似乎意味着不是完全搜索,这意味着完全' falcon'但是包含猎鹰的东西。您正在寻找的是LIKE运算符。

DB::table('satellites')
    ->whereRaw("satname LIKE 'falcon%'")
    ->get();

这会返回satname以falcon开头的任何东西:falcon 1,falcon 9,falcon 318929等。

要获得包含猎鹰的所有内容,请使用" satname LIKE'%falcon%'"。这将包括:猎鹰9,测试猎鹰,测试猎鹰82等等。