提问者:小点点

LaravelDB::原始返回-SQLSTATE[42000]:语法错误或访问冲突


为什么会出现这个错误?当我在phpMyAdmin中运行SQL时,它工作得很好。

SQLSTATE[42000]:语法错误或访问冲突: 1064您的SQL语法中有一个错误;检查与您的MySQL服务器版本相对应的手册,以获得在第1行“附近使用的正确语法(SQL:选择ID从用户那里活动=真实和生日!=0000且不存在(从agestats中选择id,其中users.id=agestats.user_idagestats.year=2020-01-13)

SQL:

select id
from users
where active = true
  and birthyear != 0000
  and not exists (
    select 1
    from agestats
    where users.id = agestats.user_id
      and agestats.year = 2020
  )

和拉威尔代码:

$membersToInsert = DB::select(DB::raw(
  'select id
  from users
  where active = true
    and birthyear != 0000
    and not exists (
      select id
      from agestats
      where users.id = agestats.user_id
        and agestats.year = ' . date('Y-m-d')
));

共1个答案

匿名用户

date('Y-m-d')将为您提供当前日期,如2020-01-13,因此只需获得2020,然后使用date('Y')。我希望这有助于你的处境