1

MYSQL では、where 句を含む select ステートメントを使用してテーブルに挿入できます

INSERT INTO Targeted (field1,field2) SELECT field1,field2 FROM Table WHERE id=$id

そして今、私もselectで更新しようとしています...私のテーブルは次のようになります

 tagged                tags
---------          -------------
fid   tid            id  amount
 1     2              1    0
 1     1              2    0
 2     2              3    0
 3     3              4    0
 3     4              

fid = 1 のような特定の WHERE 句でタグ付けされたテーブルから fid を選択する方法 次に、タグ付けされたものから返された結果でテーブルタグを更新します

Input
fid = 1

Desired output
update tags with 1 amount=amount+1
update tags with 2 amount=amount+1

SO question here についていくつかの調査を行ってきましたが、クエリがどのように見えるかですが、エラーや変更もありません

UPDATE
     tags
SET
     tags.amount = tags.amount+1
FROM
     tags
INNER JOIN     
     tagged
ON     
     tags.id = tagged.tid 
WHERE
     tagged.fid  = 1
4

1 に答える 1

1

UPDATE構文が間違っています。MySql では、テーブル参照が最初にあり、次にSET節があります。

試す

UPDATE tags t JOIN tagged d
    ON t.id = d.tid 
   SET t.amount = t.amount + 1
WHERE d.fid  = 1

更新後のtagsテーブルは次のようになります

| | ID | 金額 |
---------------
| | 1 | 1 |
| | 2 | 1 |
| | 3 | 0 |
| | 4 | 0 |

これがSQLFiddleのデモです

于 2013-06-19T05:29:58.503 に答える