@RAINGM
Здравствуйте, есть таблица guild_users в ней есть поля:
user_id, user_money, user_description, user_lvl, user_xp, lastMessage, user_warns, user_warn_reasons, user_private_role, user_exception, Time, strTime, startTime, endTime, user_timelvl, user_timexp
user_id, user_money, user_description, user_lvl, user_xp, lastMessage, user_warns, user_warn_reasons, user_private_role, user_exception, Time, strTime, startTime, endTime, user_timelvl, user_timexp
Необходимо удалить дубликаты
Решения вопроса 0
Ответы на вопрос 2
@mletov
1) Добавьте поле id, неудобно же без уникального идентификатора работать
2) Версия MySql должна быть достаточно свежей и поддерживать оконный функции
2) Версия MySql должна быть достаточно свежей и поддерживать оконный функции
Предварительно забэкапьтесь
DELETE FROM guild_users
WHERE id
NOT IN
(
SELECT id
FROM
(
SELECT id,
ROW_NUMBER(PARTITION BY user_id, user_money, user_description, user_xp, lastMessage, user_warns, user_warn_reasons, user_private_role, user_exception, Time, strTime, startTime, endTime, user_timelvl, user_timexp ORDER BY user_lvl DESC) AS rn
FROM guild_users
) AS t1
WHERE rn = 1
)
@VitalyChaikin
DELETE FROM guild_users gu
INNER JOIN (
SELECT <Список полей по которым определяется дубль>, COUNT(*)
FROM guild_users
GROUP BY <Список полей по которым определяется дубль>
HAVING COUNT(*) > 1) guDubles on
guDubles.Поле1 = gu.Поле1 AND
guDubles.Поле2 = gu.Поле2 AND ... <Список полей по которым определяется дубль>