我正在尝试查找今天创建的所有记录,并在列 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
答案 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();