Laravel 5.3查询构建器:' NOTLIKE'不工作

时间:2016-12-05 04:42:26

标签: laravel

我的表有一个名为version的列,其中有四行包含值

|Version |
|--------|
|5.3     | 
|5.2     | 
|5.3     | 
|5.2,5.3 |

我想得到的行的值不像5.2我的意思是,我想得到第一行和第三行而不是第二行和第四行。

我使用了Eloquent Model'菜单'进行如下查询。

$query = Menu:where('version', 'NOTLIKE', '%5.2%')->get();
$numberRows = count($query);

$numberRows等于0

我是以正确的方式吗?或者,有没有其他方法可以做到这一点? 我需要帮助。

7 个答案:

答案 0 :(得分:18)

将NOTLIKE更改为不喜欢

正确的代码:

$query = Menu::where('version', 'NOT LIKE', '%5.2%')->get();
$numberRows = count($query);

答案 1 :(得分:4)

顺便说一下,你需要一个双冒号::。 那么您的代码应该是

$query = Menu::where('version', 'NOT LIKE', '%5.2%')->get();
$numberRows = count($query);

答案 2 :(得分:2)

你错过了不喜欢的条款之间的空格。

https://laravel.com/docs/5.3/queries#where-clauses

答案 3 :(得分:0)

您的错误是这个'NOTLIKE'解决了这个'NOT LIKE'

尝试一下:

$query = Menu::where('field', 'NOT LIKE', '%5')->get();
$query = Menu::where('field', 'NOT LIKE', '5%')->get();
$query = Menu::where('field', 'NOT LIKE', '%5%')->get();

答案 4 :(得分:0)

您需要在NOT LIKE之间添加一个空格,这样看起来就这样

$query = Menu:where('version', 'NOT LIKE', '%5.2%')->get();
$numberRows = count($query);

答案 5 :(得分:0)

  $query->where('field', Auth::user()->id)
                  ->orWhere('field','NOT LIKE', '%,'.Auth::user()->id.',%')
                  ->orWhere('field','NOT LIKE', '%'.Auth::user()->id.',%')
                  ->orWhere('field','NOT LIKE', '%,'.Auth::user()->id.'%');
        })

答案 6 :(得分:0)

你需要在 NOT 和 LIKE 之间留一个空格,所以它看起来像这样

$query = Menu:where('version', 'NOT LIKE', '%5.2%')->get();