Portál AbcLinuxu, 4. prosince 2025 07:47
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 101
V 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.