我有一个MySQL表,它有三列:
Authority | MapID | Time
---------------------------------------------------------
animuson@forums | 000000000000000 | 45.6758
132075829385895 | 000000000000000 | 49.7869
qykumsoy@forums | 000000000000000 | 44.45
439854390263565 | 000000000000000 | 50.761
user@forums | 000000000000000 | 44.9
another@auth | 000000000000000 | 46.123
bingo@nameo | 000000000000000 | 47.4392
我正在做的是,一旦您关联了您的帐户,它就会将管理局从您使用的任何authoirty名称更改为您的帐户ID号。因此,如果我将'animuson @ forums'和'qykumsoy @ forums'链接到我的帐户,并且我的帐户ID号是'132075829385895',那么我将有3个重复的条目,因为主键是Authority + Map ID。我只会一次更改一个权限,但是多个地图ID,所以我试图找出一种方法来将权限更改为他们的用户ID,如果它是重复的,请选择最短的时间并且只是删除另一个。这样的事情可能与MySQL有关,还是我需要使用PHP?
因此,在链接这两个帐户后,我最终会得到这个表:
Authority | MapID | Time
---------------------------------------------------------
132075829385895 | 000000000000000 | 44.45
439854390263565 | 000000000000000 | 50.761
user@forums | 000000000000000 | 44.9
another@auth | 000000000000000 | 46.123
bingo@nameo | 000000000000000 | 47.4392
我正在使用的当前MySQL命令只是改变了权限:
UPDATE `tronner_times` SET `auth` = '{$ani->e->user->uid}' WHERE `auth` = '{$actual}'
答案 0 :(得分:1)
这听起来像BEFORE UPDATE触发器的工作。
答案 1 :(得分:0)
我会使用存储过程进行更新。在该过程中,您可以处理检查其他值的逻辑,必要时删除然后更新。