Intereting Posts
Код ошибки MySQL: 1305. FUNCTION JSON_EXTRACT не существует в версии клиента MySQL: 5.5.52 PHP правильный способ совместного использования классов db connect и vars config с другими классами Добавление событий на байкальский сервер CalDAV с использованием PHP Публикация фотографии в FB приводит к ошибке при загрузке файла Как загрузить все изображения галереи на сервер в Android? 1054 – Неизвестный столбец 'apa_calda' в 'where clause' Инъекционная инъекция с помощью гидратора Doctrine 2 Захват хэша (#) из URL-адреса в CodeIgniter как сохранить несколько изображений в таблице с помощью laravel php PHP: наиболее частое значение в массиве Как выполнить javascript на сервере node.js doctrine2: в двунаправленных отношениях «один ко многим», как сохранить с обратной стороны? PHP MySQLi query – "Permission denied" PHP: разделение даты и времени на значение timestamp в mysql как сохранить профиль пользователя pic в facebook с помощью php

Удалить дублированные старые строки и сохранить только последнюю версию mysql

У меня есть таблица

id:name:passportnumber:score 1:xxx:123456:99 2:yyy:789012:88 3:xxx:123456:11 4:xxx:123456:44 5:xxx:123456:66 6:xxx:123456:77 

Я хочу удалить дублированные старые строки и сохранить только последний номер, который имеет тот же номер паспорта

 id:name:passportnumber:score 2:yyy:789012:88 6:xxx:123456:77 

Каков наилучший способ без временной таблицы

благодаря

Вы должны иметь возможность самостоятельно присоединяться к своей таблице и выполнять удаление:

 delete t1 from yt t1 inner join yt t2 on t1.passportnumber = t2.passportnumber where t1.id < t2.id; 

См. SQL Fiddle with Demo

LEFT JOIN на вашем DELETE может это сделать;

 DELETE Table1 FROM Table1 LEFT JOIN Table1 b ON Table1.id<b.id AND Table1.passportnumber=b.passportnumber WHERE b.id IS NOT NULL; 

SQLfiddle для тестирования .