MySQL UPDATE和DELETE难题

时间:2014-10-25 12:59:02

标签: mysql sql where equals

我有一个包含两列的表:applicationidstudentid。我想将applicationid更新为applicationid等于旧值而studentid不等于(studentid其中applicationid已经相等的新值到新的价值)。该表看起来像这样,我想将2222222222222 applicationid更新为1111111111111,但并非总是如此:

--applicationid-- --studentid--
--1111111111111-- --111111111-- // RIGHT HERE!
--1111111111111-- --555555555--
--2222222222222-- --666666666-- // Here I want to simply update application id to 1111111111111
--2222222222222-- --111111111-- // I WANT TO DELETE THIS ROW, BECAUSE THE UPDATE RESULT ALREADY EXISTS! ^^ 
--2222222222222-- --777777777-- // I also want this row to be updated.

这是我已经获得的查询,但它确实将applicationid更新为新值,即使结果已经存在:

UPDATE students_applications 
SET applicationid = 1111111111111 
WHERE applicationid = 2222222222222

有什么想法?

提前致谢。

1 个答案:

答案 0 :(得分:0)

这样的东西?

delete from table where studentid = '111111111' and applicationid <> '111111111111111';
update table set applicationid = '11111111111111';