Обновить значение столбца или удалить его в случае дублирования? - PullRequest
0 голосов
/ 13 августа 2010

У меня есть таблица 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

Что я делаю, так это то, что, как только вы связываете свою учетную запись, она меняет полномочия с любого имени, которое вы использовали, на идентификатор вашей учетной записичисло.Так что, если я свяжу 'animuson @ forums' и 'qykumsoy @ forums' с моей учетной записью, а номер моей учетной записи будет «132075829385895», то у меня будет 3 дублирующихся записи, потому что первичный ключ - Authority + Map 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}'

Ответы [ 2 ]

1 голос
/ 13 августа 2010

Это звучит как работа для триггера ПЕРЕД ОБНОВЛЕНИЕМ.

0 голосов
/ 13 августа 2010

Я бы использовал хранимую процедуру для обновления. В процедуре вы можете обработать логику для проверки других значений, при необходимости удалить, а затем обновить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...