php - MYSQL 查询未更改,从同一列中的值更新值

标签 php mysql

我在另一篇文章中提出了这个问题,该文章有一个基本查询,但在执行以下命令时仍然无法工作,没有任何反应,有什么想法吗?

UPDATE mage_catalog_product_entity_varchar 
  SET value = (SELECT value WHERE attribute_id = 703) 
  WHERE attribute_id = 106;

因此,如果 attribute_id 列 = 106,我将更新 value 列中的值,但仅从 attribute_id 列 = 703 的值列更新

以下查询还会更新 attribute_id 106 对应的值字段中的 0

UPDATE mage_catalog_product_entity_varchar 
  SET value = (SELECT value from mage_catalog_product_entity_varchar 
  WHERE attribute_id = 703) WHERE attribute_id = 106;

最佳答案

子查询中缺少 From 子句。可以再检查一次吗

UPDATE mage_catalog_product_entity_varchar 
  SET value = (SELECT value WHERE attribute_id = 703) 
  WHERE attribute_id = 106;

应该是(如果直接在内部查询中使用,MYSQL不会更新表)

UPDATE mage_catalog_product_entity_varchar a, 
   mage_catalog_product_entity_varchar b
    SET a.value = b.value WHERE a.attribute_id = 106
     AND b.attribute_id = 703;

您还可以在 SQL Fiddle 1 上找到解决方案

MySQL 出现错误“You can'tspecify target table 'table_name' for update in FROM Clause” 要了解有关此错误的更多信息,您可以访问主题

MySQL #1093 - You can't specify target table 'giveaways' for update in FROM clause

如果讨论的表中有多个与属性 ID 703 相对应的条目,则查询将从插入的第一条记录中获取值,而另一条记录将被忽略。

您可以在此处查看此情况 SQL Fiddle 2

关于php - MYSQL 查询未更改,从同一列中的值更新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13090142/

相关文章:

php - Symfony2 没有正确保存 session

java - XAMPP 服务器未返回 Json 对象

php - 从MySQL数据库获取数据时查询失败

mysql - 使用 MySQL 查找最接近十进制坐标的 X 位置的效率

php - 使用 PHP 更新 MySQL

php - 如何从 mysql 查询中获取所有相关类别列表

php, mysql 如果$a 在数据库中

php - 这个php函数应该递归运行吗?

php - 生成下拉列表,将所选项目发送回服务器

mysql - 在 MySQL 中对两个表中的数据进行分组