-4

データに変更がない場合にテーブルを更新したいのですが、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サーバー

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

質問が解決したことを願っています。まだ疑問がある場合は、コメントしてください。

4

1 に答える 1

0

なぜそんなことをしたいのかまだわかりませんが...WHERE句を使ってみてはいかがでしょうか

何かのようなもの:

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

お役に立てれば

于 2013-02-05T12:38:27.170 に答える