在这里失去理智,试图弄清楚这一点。这是SQL:
Update `ScheduledShifts` ss
LEFT JOIN `Shifts` s ON ss.`ShiftID` == s.`ShiftID`
SET ss.`IsWeekend`
WHERE (s.`WeekendDays` & (1 << (DAYOFWEEK(ss.`OriginalShiftDate`)-1))) <> 0;
和完整的错误:
1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在'== s。
ShiftID
SET ss。IsWeekend
WHERE(s。WeekendDays
&(1 < 最佳答案
Update ScheduledShifts ss LEFT JOIN Shifts s ON ss.ShiftID = s.ShiftID SET ss.IsWeekend WHERE (s.WeekendDays & (1 << (DAYOFWEEK(ss.OriginalShiftDate)-1))) <> 0;
简短的答案:单等于,而不是双等于请在您的查询中签名!
我以前从未在单个查询中执行过左联接更新,所以我不知道这是否本身就是问题,但我确实相信问题是您的双重等号。
在脚本语言中,您的==是有效的,但是在sql请求中,它是非法的。
关于mysql - “您的SQL语法有误;查看与您的MySQL相对应的手册”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35989718/