2012-09-11 3 views
0

Le select fonctionne et renvoie 1 résultat.Mise à jour MySQL non mise à jour

SELECT * FROM `list` WHERE `email` = '[email protected]' AND `cid` = 1; 

Cette mise à jour fonctionne, aucune erreur, aucun enregistrement affecté !!!

UPDATE `list` 
    SET `message` = 'test', `status` = 0 
WHERE `email` = '[email protected]' AND `cid` = 1; 

structure Tableau

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; 
+0

Pouvez-vous publier une définition de table? 'SHOW CREATE TABLE list' – favoretti

+0

structure de la table ajoutée – transilvlad

+2

Etes-vous sûr que vous êtes en train de * changer * certaines de ces valeurs? MySQL indiquera séparément le nombre de lignes correspondant et le nombre de lignes modifiées. Si elles sont différentes, les données n'ont tout simplement pas besoin d'être modifiées. –

Répondre

2

Les rapports du serveur MySQL aucun enregistrement n'a été affecté parce que, même si une ligne correspond aux critères, il n'a pas besoin d'être mis à jour: il a déjà message = « test 'et status = 0.

Essayez cette requête si vous voulez toujours mettre à jour le champ Date:

UPDATE `list` 
    SET `message` = 'test', `status` = 0, `date`=NOW() 
WHERE `email` = '[email protected]' AND `cid` = 1; 
+0

OK, bonne réponse, logique, épargner au serveur la nécessité d'utiliser des ressources supplémentaires. Avez-vous une solution? Je veux que le TIMSTAMP mette à jour le champ date de toute façon. – transilvlad

+0

si vous souhaitez mettre à jour le champ date, il devrait faire partie de votre requête de mise à jour. – Jocelyn

+0

Et si je ne veux pas fournir l'heure, je veux que MySQL le fasse. – transilvlad