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              

如何从带有特定 WHERE 子句(如 fid = 1)标记的表中选择 fid 然后使用标记的返回结果更新表标签

Input
fid = 1

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

我对 SO问题进行了一些研究,这里是我的查询的样子,但它也没有给出任何错误或更改

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表后看起来像

| 身份证 | 数量 |
---------------
| 1 | 1 |
| 2 | 1 |
| 3 | 0 |
| 4 | 0 |

这是SQLFiddle演示

于 2013-06-19T05:29:58.503 回答