| | |
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
Autor | Správa |
---|
Registrovaný: 26.02.08 Prihlásený: 24.05.13 Príspevky: 372 Témy: 66 Bydlisko: Nové Zámky |
zdravim potrebujem spravit script ktory mi vytiahne poslednych 20 zaznamov od daneho usera... ide mi oto ze mam na stranke ip log a chcem tam nechat iba poslednych 20 zaznamov a ostatne zmazat...chcem ci sa to da spravit nejak jednym dotazom myslim to vytiahnutie...stlpce id_zaznam, id_user, ip
ak sa to dotazom jednym neda tak nejake dobre riesenie...co som premyslal tak sa mi zda dost blbo riesene
|
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 Bydlisko: Bratislava |
Obavam sa ze jednym dotaozm to nepojde (aspon mne nenapada ziaden sposob).
Predpokladam ze uzivatelov nebudu tisice, takze ja by som si
1. vybral uzivatelov distinctom a v cykle pre kazdeho
2. zistil id 20-teho zaznamu a
3. vymazal vsetky ktore su pred tym id (co by nemal byt problem pri predpoklade rastuceho id)
Kód: 1. SELECT DISTINCT id_user AS nas_user FROM table
2. SELECT MIN(id_zaznam) AS nas_zaznam FROM (SELECT id_zaznam FROM table WHERE id_user = $nas_user ORDER BY id_zaznam DESC LIMIT 20) AS t
3. DELETE FROM table WHERE id_user = $nas_user AND id_zaznam < $nas_zaznam
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 03.02.2010 19:28 | |
|
Dá sa to zjednodušiť pomocou LIMIT: Kód: 1. SELECT DISTINCT id_user AS nas_user FROM table
// a potom toto v cykle 2. DELETE FROM table WHERE id_user = $nas_user ORDER BY id_zaznam DESC LIMIT 20, 18446744073709551615;
Keby niekoho zaujímalo, prečo také vtipné číslo je v tom limite - tak to udáva MySQL manuál: http://dev.mysql.com/doc/refman/5.1/en/select.html
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
| Stránka: 1 z 1
| [ Príspevkov: 3 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|