MySQL更新不更新

标签 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;

最佳答案

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

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

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

关于MySQL更新不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12376733/

相关文章:

php - 显示用户个人资料图片php

mysql - 传输mysql Access 包括关系和外键?

php - Laravel,Eloquent 上的三表关系

MySQL 语法。表名、点、字段名之间可以使用空格吗?

mysql - 为数据类型分配的大小

java - 多对多关联无法与级联属性一起正常工作

mysql - 选择不同但具有列的值

mysql - 远程连接到 openshift 数据库

php - mysql 中的多对多查询

sql - WHERE 和 HAVING 之间的语义区别是什么?