很多时候我们想更新表,都希望可以自更新,但是在mysql中好像不能执行自更新的,需要使用INNER JOIN才可以实现这一目标
goods表
goods_id | goods_name | goods_number | goods_brand |
---|---|---|---|
1 | 爱他美1段 | 50 | 0 |
2 | 澳洲爱他美2段 | 60 | 0 |
3 | 德国爱他美3段 | 80 | 0 |
4 | 贝亲奶嘴 | 100 | 0 |
5 | 贝亲奶瓶 | 150 | 0 |
找出goods_name含有关键字爱他美的,并且将goods_brand改为3
sql语句
UPDATE goods AS b
INNER JOIN (
SELECT
a.goods_id
FROM
goods AS a
WHERE
a.goods_name LIKE '%爱他美%'
) AS c ON b.goods_id = c.goods_id
SET b.goods_brand = 3
结果
goods_id | goods_name | goods_number | goods_brand |
---|---|---|---|
1 | 爱他美1段 | 50 | 3 |
2 | 澳洲爱他美2段 | 60 | 3 |
3 | 德国爱他美3段 | 80 | 3 |
4 | 贝亲奶嘴 | 100 | 0 |
5 | 贝亲奶瓶 | 150 | 0 |