Portál AbcLinuxu, 12. května 2025 13:50
Ahoj viete mi niekto poradit ako vymazat tieto riadky? query=select * FROM login ORDER BY datum_a_cas DESC LIMIT 2,100; nieco taketo: delete from login where =(select * FROM login ORDER BY datum_a_cas DESC LIMIT 2,100);tieto riadky (query) chcem vymazat. Je to mozne? Dakujem za pomoc!
Řešení dotazu:
delete from login where primarni_klic in (select primarni_klic from login order by datum_a_cas desc limit 2,100);
nejdriv si to pust v transakci at vidis jestli to funguje tak jak jsi zamyslel
DELETE FROM login ORDER BY datum_a_cas DESC LIMIT 2,100;
?
Ahoj, takto to nejde skusal som:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '100' at line 1
DELETE FROM login USING login JOIN ( SELECT @rownum:=@rownum + 1 AS rownum, m.id FROM login AS m, (SELECT @rownum:=0) AS s ORDER BY datum_a_cas DESC ) AS aa ON login.id = aa.id WHERE aa.rownum BETWEEN 2 AND 101V principu jde o to, že si nechám očíslovat všechny řádky v tabulce (přidělím jim rownum). Pak toto číslování najoinuju k původní tabulce (přes vícetabulkovou syntax příkazu DELETE), takže podmínku, kterou jsem měl v LIMIT, můžu teď dát do WHERE, protože se můžu odkázat na čísla řádků.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.