【问题标题】:Laravel 5.6 eloquent whereDate and WhereRaw errorLaravel 5.6 雄辩的 whereDate 和 WhereRaw 错误
【发布时间】:2019-01-24 10:20:49
【问题描述】:

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

我收到以下语法错误:

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的 'WHERE functional_id LIKE "1%"' 附近使用正确的语法(SQL:select count(*) as aggregate from image_requests where date(created_at) = 2019-01-24 00:00:00 和 WHERE functional_id LIKE "1%")

我的雄辩代码:

$counter = ImageRequest::whereDate('created_at', $date)->whereRaw('WHERE functional_id LIKE "1%"')->count();

【问题讨论】:

    标签: php mysql laravel


    【解决方案1】:

    这应该可行:

    $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();
    

    【讨论】:

    • 嘿,谢谢,但我忘记了一些我需要检查第十二个字符是否为 1 的内容,因为它前面有一个像这样的日期 2019-24-01-10000 我需要检查 1日期之后
    • 你需要检查第十二个字符是不是一个吗?
    • 是的,太棒了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 2021-04-10
    • 2017-05-16
    • 2017-08-04
    • 2020-02-08
    • 2018-11-07
    相关资源
    最近更新 更多