2015-05-10 2 views
-1

Я пытаюсь удалить несколько записей из таблицы БД на основании даты.Java MySQL Удалить дубликаты Запрос в поле даты

Например, рассмотрите следующие данные.

- Program Name ------- Job_Run_date 
- program.exe ------- 2015-08-04  
- program.exe ------- 2015-08-04  
- program.exe ------- 2015-08-05  
- program.exe ------- 2015-08-05  
- program.exe ------- 2015-08-06 

в вышеуказанном списке запись за 2015-08-04 произошла дважды. Ожидаемое количество записей для каждого поля даты составляет только одну дату. Я бы сохранил каждую информацию о запуске в таблице БД, однако мне не понадобилось бы несколько записей для программы. Но для идентификации процессов, которые выполнялись в определенную дату, требуется запись.

Я попытался выполнить следующие запросы от java-программы, но некоторые из них как-то не работают.
DELETE FROM WHERE process_data RUN_Date NOT IN (SELECT RUN_Date FROM (SELECT MIN (RUN_Date) FROM process_data GROUP BY RUN_Date))

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

ответ

0

Есть два варианта, чтобы исправить эту проблему,

1. Before insertion, you can validate if there exists any record for this date. 
2. Execute the below query 
DELETE FROM PROCESS_DATA WHERE RUN_Date NOT IN (SELECT distinct RUN_Date FROM PROCESS_DATA) 
+0

Предоставленный логика не работает. Если даты вставляются в формат «YYYY MM DD», все разные записи за ту же дату не совпадают. SO, запрос не работает. – kris123456

Смежные вопросы