如果MySQL数据没有变化,则更新MySQL表的数据

如果MySQL数据没有变化,则更新MySQL表的数据,mysql,sql,sql-server,Mysql,Sql,Sql Server,如果数据没有变化,我想更新一个表,在SQL Server中,这是可能的,但在MySQL中,我如何才能做到 MySQL DROP TABLE IF EXISTS PEOPLE; CREAte tempORARY table PEOPLE ( _data CHAR(1), id int ); INSERT into PEOPLE SELECT 'N',1 UNION ALL SELECT 'Y',2 UNION ALL SELECT 'N',3 UNION ALL SELE

如果数据没有变化,我想更新一个表,在SQL Server中,这是可能的,但在MySQL中,我如何才能做到

MySQL

DROP TABLE IF EXISTS PEOPLE;
CREAte tempORARY  table PEOPLE
(
    _data CHAR(1),
    id int
);

INSERT into PEOPLE
SELECT 'N',1 UNION ALL 
SELECT 'Y',2 UNION ALL 
SELECT 'N',3 UNION ALL 
SELECT 'Y',4;

-- now I want to update it
UPDATE PEOPLE
SET _data = 'A'
WHERE id = 1;
-- 1 row(s) affected

-- now I want to update it again
UPDATE PEOPLE
SET _data = 'A'
WHERE id = 1;
-- 0 row(s) affected
如果数据没有变化,我想更新数据

SQL Server

DECLARE @tempORARY  table
(
    _data CHAR(1),
    id int
);

INSERT into @tempORARY 
SELECT 'N',1 UNION ALL 
SELECT 'Y',2 UNION ALL 
SELECT 'N',3 UNION ALL 
SELECT 'Y',4;

-- now I want to update it
UPDATE @tempORARY 
SET _data = 'A'
WHERE id = 1;
-- 1 row(s) affected

-- now I want to update it again
UPDATE @tempORARY 
SET _data = 'A'
WHERE id = 1;
-- 1 row(s) affected

我希望我澄清了我的问题,如果你仍然有疑问,请发表评论。

我仍然不知道你为什么要这样做。。。但是使用WHERE子句怎么样

比如:

UPDATE @tempORARY 
SET _data = 'A'
WHERE id = 1 AND _data != 'A';

希望这有帮助

我不明白。你能补充更多的信息吗?你能再解释一下吗?如果数据没有变化,我想更新数据。-你怎么知道没有变化?这是MySQL的默认行为,我认为你不能改变它。我正在将SQL Server更改为MySQL,所以我需要这个我想要这个,因为它在SQL Server中是可能的,所以我想我也可以在MySQL中做