Laravel 5.6雄辩的whereDate和WhereRaw错误

时间:2019-01-24 10:20:50

标签: php mysql laravel

我正在尝试查找今天创建的所有记录,并在列 functional_id 中以1开头。

我收到以下语法错误:

  

SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法有一个错误;请参见语法。检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第1行的'WHEREfunctional_id LIKE“ 1%”'附近使用(SQL:从image_requests中选择count(*)作为汇总,其中date({{ 1}})= 2019-01-24 00:00:00,WHEREfunctional_id就像“ 1%”)

我雄辩的代码:

created_at

1 个答案:

答案 0 :(得分:4)

这应该有效:

$counter = ImageRequest::whereDate('created_at', $date)
    ->where('functional_id', 'like', '1%')
    ->count();

我认为问题在于多余的"。但是,在这种情况下,无需使用whereRaw()where()足以应付此类错误:)

编辑:根据您的评论,如果要检查第十二个字符是否为1,则应该可以进行以下操作:

$counter = ImageRequest::whereDate('created_at', $date)
    ->whereRaw('SUBSTRING(funtional_id, 12, 1) = 1')
    ->count();