Hirdetés
Új hozzászólás Aktív témák
-
bpx
őstag
válasz
Speeedfire
#1167
üzenetére
PHP-t erre felejtsd el, adatok ilyen szintű manipulációját az adatbázis végezze, ne a hozzá kapcsoló alkalmazás
ez 1, azaz egy darab színtiszta SQL utasítás:
DELETE FROM tabla WHERE id IN(
SELECT id FROM(
SELECT id, RANK() OVER (PARTITION BY uid ORDER BY time DESC) r FROM tabla)
WHERE r > 500);magyarázat:
a legbelső select partíciókat képez a táblából az uid alapján, és a partíciókat idő szerint (time) csökkenő sorrendbe rendezi, és minden egyes id-hoz rendel egy sorszámot (rank), hogy adott partícióban a rendezés szempontja szerint hanyadik helyen áll
az eggyel kintebb levő select lekérdezi azokat az id-kat, ahol ez a "rang" 500-nál nagyobb, tehát kívül esik a kívánt limiten
a delete meg törli az ilyen id-val rendelkező sorokat
szerk: adatbáziskezelőt mondjuk nem írtál, ez Oracle-ben működik, én a tábládból úgy tippelem hogy MS SQL (auto increment PK, meg int típus), de ezek a funckiók mintha ott is meglennének
-
Sk8erPeter
nagyúr
válasz
Speeedfire
#1167
üzenetére
Hát én komplexebb feladatokra tárolt eljárást használok, mióta belekóstoltam.
De a te feladatodat igazából nem értem, hogy miért akarod tömbökbe szedni a userek id-ját... Adott userekhez tartozó bejegyzéseknél X időközönként csak Y mennyiséget akarsz törölni, tehát azt akarod, hogy valamennyi az adott júzerhez mindenképp megmaradjon?
Szóval nem csak törölni kell a táblából azt az Y sort, azt' kész?
Fejtsd ki, MOST!
===
(#1166) lakisoft :
"Tárolt eljárást is sokszor használok Dynamic SQL-lel együtt. Ott már nem látod hogy csúnya
."
Miért, a tárolt eljárás önmagában még nem ocsmány, de el lehet rondítani.
Új hozzászólás Aktív témák
- hcl: Könnyű légierő
- 12 percnyi játékmenet bemutatót kapott a Mortal Shell II
- Milyen egeret válasszak?
- Xiaomi 17 Ultra - jó az optikája
- Samsung Galaxy S26 - szeret, nem szeret
- Android alkalmazások - szoftver kibeszélő topik
- Synology NAS
- Megnyerné a Motorola a furcsa mobilnevek bajnokságát
- Háztartási gépek
- Revolut
- További aktív témák...
- LG OLED 42C2 hibátlan, beégésmentes, 120Hz, PS5/Xbox gaming TV
- AMD Ryzen R9 5900X 12Mag / 24Szál / 3,7 / 4,8 GHz / 22 Hónap Alza.hu garancia / Beszámítás OK!
- Gainward 4060Ti Ghost 8GB / 10 Hónap Alza.hu Garancia / Beszámítás OK! Akciós ár!
- Xiaomi Redmi Note 8 Pro 64GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 12 64GB, Kártyafüggetlen, 1 Év Garanciával
- Eredeti Lenovo 135W töltők (sárga téglalap)
- ÚJRA! 256GB NVMe SSD, 1 év gar
- AKCIÓ! ASUS H110M i5 6500 8GB DDR4 120GB SSD 500GB HDD GTX 1050Ti 4GB Zalman T3 Plus NBASE 600W
- Samsung Galaxy S24 / 8/128GB / Kártyafüggetlen /12Hó Garancia / Akku: 100%
- Lenovo Thinkpad P15 Gen 2 - 23 akkuciklus - 27% ÁFÁS (0358AB)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

."
