0
UPDATE default_weekly_stats s 
INNER JOIN default_profiles p
ON p.user_id = s.user_id
WHERE (default_profiles.opid = 0 OR default_profiles.opid IS NULL) 
    AND s.week = `1`
    AND s.correct_picks = `4`
SET s.rank = 1

それが私のクエリで、エラーが発生しています:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (default_profiles.opid = 0 OR default_profiles.opid IS NULL) AND s.week = ' at line 1

構文は私には正しいように見えますが、明らかに何かが欠けています。どんなアイデア?

4

2 に答える 2

3

WHERE後に来る SET

UPDATE default_weekly_stats s 
INNER JOIN default_profiles p ON p.user_id = s.user_id 
SET s.rank = 1
WHERE (default_profiles.opid = 0 OR default_profiles.opid IS NULL) 
AND s.week = 1 
AND s.correct_picks = 4 

そして@Chadが述べたように:バッククォートを残してください。引用符を使用できますが、数字の区切り記号は必要ありません。

于 2013-09-06T15:11:08.543 に答える
3

UPDATE構文を見てください

これを試して:

UPDATE
  default_weekly_stats s
    INNER JOIN default_profiles p
      ON p.user_id = s.user_id 
SET s.rank = 1
WHERE (default_profiles.opid = 0 OR default_profiles.opid IS NULL)
  AND s.week = `1`
  AND s.correct_picks = `4`
于 2013-09-06T15:12:37.213 に答える