MySQL更新没有更新

时间:2012-09-11 19:38:20

标签: mysql

选择有效并返回1个结果。

SELECT * FROM `list` WHERE `email` = 'john@doe.com' AND `cid` = 1;

此更新有效,没有错误,没有记录影响!!!

UPDATE `list` 
  SET `message` = 'test', `status` = 0 
WHERE `email` = 'john@doe.com' AND `cid` = 1;

表格结构

CREATE TABLE `list` (
    `id` BIGINT(19) NOT NULL AUTO_INCREMENT,
    `email` VARCHAR(255) NULL DEFAULT NULL,
    `cid` INT(10) NOT NULL DEFAULT '0',
    `message` TEXT NULL,
    `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    `status` TINYINT(1) NOT NULL DEFAULT '0',
    PRIMARY KEY (`id`),
    INDEX `cid` (`cid`),
    INDEX `date` (`date`),
    INDEX `status` (`status`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM;

1 个答案:

答案 0 :(得分:3)

MySQL服务器报告没有记录受到影响,因为即使一行符合条件,它也不需要更新:它已经有message =' test'和status = 0。

如果您想始终更新日期字段,请尝试此查询:

UPDATE `list` 
  SET `message` = 'test', `status` = 0, `date`=NOW()
WHERE `email` = 'john@doe.com' AND `cid` = 1;