在我Mysql
数据库中,我有数据,像下面基于其他更新结果有条件更新行
id | id_fk | name | address | city | priority | status |
--------------------------------------------------------------
1 | 1 | name1 | address1 | city1 | | active |
2 | 2 | name2 | address2 | city2 | primary | active |
3 | 1 | name3 | address3 | city3 | primary | active |
4 | 1 | name4 | address4 | city4 | | active |
5 | 1 | name5 | address5 | city5 | | active |
6 | 3 | name6 | address6 | city6 | primary | active |
--------------------------------------------------------------
这里的表,id
是行ID,id_fk
是从另一个表的参考。 status
是数据状态。如果数据被删除,那么它将是deleted
。而priority
是供参考的默认地址。
我的问题是,
如果我id = 3
删除该地址,然后将不会有任何优先地址“id_fk = 1”。我想将'id = 3'的状态更改为deleted
,并将其他地址中任何一个'id_fk = 1'的priority
设置为primary
。
简单UPDATE
查询不会这样做。有没有办法做到这一点?预先感谢。
我已经试过这样做,用的情况下,当语句和if语句,但未能:( 目前最好的答案我可以给你的是使用2个更新查询(如果第一个更改了一行,将另一行更新为状态'primary') – iLot 2014-11-08 13:58:02