Jag får tyvär error när jag försöker använda en select på samma tabell som jag vill radera. Syntaxen jag använder är:
delete from ds_search_history
where exists (select *
from ds_search_history as t
where t.search_keyword = ds_search_history.search_keyword
and t.search_timestamp < ds_search_history.search_timestamp)
..jag testade givetvis även din variant, @nders, men det verkar inte fungera. Vad jag egentligen försöker göra är att radera alla dubletter men spara en av posterna. Select-satsen plockar ut alla dessa dubletter som jag vill ha bort.
Mysql har någon begränsning i det att man kan inte ange den tabell man gör delete på i subselecten om jag inte missminner mig.
Det alternativ som står till städes torde då vara att förfara enligt följande
create temporary table t as
select <kolumner>,min(search_timestamp)
from ds_search_history
group by <kolumner>
delete from ds_search_history
insert into ds_search_history
select * from t
Med <kolumner> avses alla kolumner utom search_timestamp
Du får kontrollera syntaxen för att skapa en tabell med hjälp av select då Mysql ej följer standard i detta avseende.
Tack för hjälpen, jag ska kolla upp om det fungerade senare under dagen. Själv har jag kört MS SQL i mååånga år och där är det bara att tuta och köra. =)