简体   繁体   English

隐式MySQL连接更新语句-受影响的0行

[英]Implicit MySQL Join on Update Statement - 0 rows affected

I'm trying to get this MySQL code to work, but it's saying 0 rows affected. 我正在尝试使此MySQL代码正常工作,但它表示受影响的0行。

UPDATE assessments, assessment_types
SET assessments.assessment_type_id = assessment_types.id
WHERE (assessment_types.description = "Skills Assessment" AND assessments.id = 2);

Basically I have assessment_types with id and description column, and I just have the id in the assessments.assessment_type_id 基本上我有带有IDdescription列的评估类型 ,并且我只是在Assessments.assessment_type_id中具有ID

I need to update the id . 我需要更新id

I searched and couldn't find quite what I need for this. 我搜索了一下,却找不到我需要的东西。

Thanks! 谢谢!

Table Data: assessment_types id description 1 Knowledge Assessment 2 Skill Assessment 3 Personal Information 4 Natural Skills 表格数据: 评估类型 ID描述1知识评估2技能评估3个人信息4自然技能

Table Structure: 表结构:

--
-- Table structure for table `assessments`
--

CREATE TABLE IF NOT EXISTS `assessments` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf8_bin NOT NULL,
  `acronym` varchar(255) COLLATE utf8_bin NOT NULL,
  `assessment_type_id` int(11) NOT NULL,
  `language_id` int(11) NOT NULL,
  `date_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `date_updated` date NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`),
  KEY `assessment_type_id` (`assessment_type_id`),
  KEY `language_id` (`language_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=2385 ;

--
-- Table structure for table `assessment_types`
--

CREATE TABLE IF NOT EXISTS `assessment_types` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `description` varchar(255) CHARACTER SET latin1 NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=7 ;

You can try doing an explicit join of the two tables in your UPDATE statement: 您可以尝试在UPDATE语句中对两个表进行显式连接:

UPDATE assessments a
INNER JOIN assessment_types at
    ON a.assessment_type_id = at.id
SET a.assessment_type_id = at.id
WHERE (at.description = "Skills Assessment" AND a.id = 2);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM