Mam taką tabele:
+--+-------+------------------+---------------------+ |id|ip |referer |time | +--+-------+------------------+---------------------+ |1 |1.2.3.4 |http://google.pl/ |1970-01-01 00:00:00| +--+-------+------------------+---------------------+ |2 |3.2.1.2 |http://bing.com/ |1971-02-01 00:10:00| +--+-------+------------------+---------------------+ itd.
ogólnie jakieś tam statystyki z zapisem z jakiego IP jaki referer i kiedy.
Potrzebuję wyświetlić 20 ostatnich unikalnych (tak aby w wyniku nie powtarzały się adresy) wejść, plus dodać falagę ze w referer zawiera słowo %msg%.
Mam taki kod, który działa ale przy ok 10tyś. rekordów już zamula. Czy można go zoptymalizować:
SELECT id, ip AS wyip, ile, referer, time, ( CASE WHEN ( ( SELECT COUNT( ip ) FROM `stats` WHERE wyip = ip AND referer LIKE '%msg%' ) >0 ) THEN '1' ELSE '0' END ) AS msg FROM ( SELECT IP AS UNIQIP, COUNT( IP ) AS ILE FROM `stats` GROUP BY IP )T2, ( SELECT id, time, ip, referer FROM ( SELECT MAX( time ) AS time, MAX( id ) AS id, ip, referer FROM `stats` GROUP BY ip ORDER BY id DESC ) AS `stats` LEFT JOIN `stats` USING ( id, time, ip, referer) )T WHERE IP = UNIQIP ORDER BY ID DESC LIMIT 0 , 20
Dziękuje za odpowiedzi:)