Mysql 我可以通过加入进行更新吗
Mysql Can I make an update with join
我有一个包含多个 table 的数据库,我的所有查询都有效,但我想要一个新的,但无法成功使其正常工作。
我的 'vins' table 中有两个 tables 'vins' 和带有外键 IDproducteur 的“producteurs”。
我需要从 excel 源更新 'vins'table,其中数据并不总是正确写入,并且需要更改 'vins' [= 的某些记录的库存值20=] p.nomproducteur 和 V.annee 和 v.nom 是参数,但为了测试我设置了硬值。
我的查询如下:
UPDATE vins AS v
JOIN producteurs p
ON ( p.IDproducteur = v.IDproducteur AND p.nomproducteur LIKE "Charles" )
SET stock = 10
WHERE v.nom LIKE "Symphonie" AND v.annee = 2013
我有两条记录,生产者是 "Charles",V.nom 是 Symphonie,一条是 annee = 2010,一条是 2013。我在 phpMyadmin 中没有错误,但我的查询没有结果即使通过更改一些命令顺序。
我想要的是不可能的吗?
基于 JOIN 的更新在 mysql 中很常用,因此请确保您的连接和 where 条件与表中的值真正匹配
UPDATE vins AS v
INNER JOIN producteurs p ON p.IDproducteur = v.IDproducteur
SET v.stock = 10
WHERE v.nom = "Symphonie"
AND v.annee = 2013
AND p.nomproducteur = "Charles"
并且你不是过滤部分字符串的事实使用 = 而不是 like
将条件p.nomproducteur LIKE "Charles"
放在WHERE子句中:
UPDATE vins v
JOIN producteurs p ON p.IDproducteur = v.IDproducteur
SET stock = 10
WHERE
v.nom = "Symphonie" AND v.annee = 2013 AND p.nomproducteur = "Charles"
在这种情况下也不需要LIKE
,一个简单的=
就可以了。
我有一个包含多个 table 的数据库,我的所有查询都有效,但我想要一个新的,但无法成功使其正常工作。 我的 'vins' table 中有两个 tables 'vins' 和带有外键 IDproducteur 的“producteurs”。 我需要从 excel 源更新 'vins'table,其中数据并不总是正确写入,并且需要更改 'vins' [= 的某些记录的库存值20=] p.nomproducteur 和 V.annee 和 v.nom 是参数,但为了测试我设置了硬值。 我的查询如下:
UPDATE vins AS v
JOIN producteurs p
ON ( p.IDproducteur = v.IDproducteur AND p.nomproducteur LIKE "Charles" )
SET stock = 10
WHERE v.nom LIKE "Symphonie" AND v.annee = 2013
我有两条记录,生产者是 "Charles",V.nom 是 Symphonie,一条是 annee = 2010,一条是 2013。我在 phpMyadmin 中没有错误,但我的查询没有结果即使通过更改一些命令顺序。 我想要的是不可能的吗?
基于 JOIN 的更新在 mysql 中很常用,因此请确保您的连接和 where 条件与表中的值真正匹配
UPDATE vins AS v
INNER JOIN producteurs p ON p.IDproducteur = v.IDproducteur
SET v.stock = 10
WHERE v.nom = "Symphonie"
AND v.annee = 2013
AND p.nomproducteur = "Charles"
并且你不是过滤部分字符串的事实使用 = 而不是 like
将条件p.nomproducteur LIKE "Charles"
放在WHERE子句中:
UPDATE vins v
JOIN producteurs p ON p.IDproducteur = v.IDproducteur
SET stock = 10
WHERE
v.nom = "Symphonie" AND v.annee = 2013 AND p.nomproducteur = "Charles"
在这种情况下也不需要LIKE
,一个简单的=
就可以了。