I need to cleanup my table of over 14.000.000 rows inside. I want to delete all entries, that are older than 30 days, but only if number of grouped items is larger than one. So, at least one item will stay.
Getting items and deleting them by date is not that problem. But it will delete all.
DELETE FROM parsed WHERE timestamp < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY))
I thought something like that
SELECT * FROM parsed WHERE TIMESTAMP < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 8 DAY)) AND ( ( SELECT COUNT(*) FROM parsed GROUP BY item_id ) > 1 )
But this will not work. Thanks for help!