-1

特定の行のデータからいくつかの行を更新しようとしていますこれは
単一のテーブルであり 、私の試みItemNumはユニークです:

UPDATE myTable t, (SELECT DISTINCT width, repeat
            FROM myTable
            WHERE ItemNum='80644') t1
SET t.width = t1.width
AND SET t.repeat = t1.repeat
WHERE ItemNum='80645'
AND WHERE ItemNum='80646'


#1064 - 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 'FROM myTable WHERE ItemNum='80644') t1 SET t.width' at line 2


単一の行に対してこれを実行するとエラーが発生
しますが、複数の行の構文が問題のようです

UPDATE myTable t, (SELECT DISTINCT width
  FROM myTable
  WHERE ItemNum='80644') t1
SET t.width = t1.width
WHERE ItemNum='80645'
4

2 に答える 2

0

動作するはずですが、itemnum=80644 の行が複数ある場合、信頼できる結果が得られません

UPDATE myTable t
join
    (SELECT DISTINCT width, repeat
            FROM myTable
            WHERE ItemNum='80644') t1
    on t.ItemNum in ('80645','80646')
SET
    t.width = t1.width,
    t.repeat = t1.repeat  
于 2012-08-06T18:50:45.700 に答える
-1
UPDATE t
SET t.width = t1.width
AND SET t.repeat = t1.repeat
FROM  myTable t INNER JOIN  (SELECT DISTINCT width, repeat
            FROM myTable
            WHERE ItemNum='80644') t1
ON ItemNum in ('80645'

,'80646')

update ステートメントは、更新する必要のあるテーブル名を 1 つだけ持つことができます

更新ステートメントを容易にするために、結合でサポート テーブルを指定できます。

于 2012-08-06T18:54:04.073 に答える