Forum Moderators: open
$query=" SELECT DISTINCT ip FROM visits AS r1
JOIN (SELECT ROUND(
RAND( ) * (
SELECT MAX( id ) FROM visits)
) AS id
) AS r2
WHERE r1.id >= r2.id
AND counter='1'
ORDER BY r1.id DESC
LIMIT 10";
$result=mysql_query($query);
while($row =mysql_fetch_array($result)){
$ip=$row['ip'];
echo "$ip,";
$query=" SELECT DISTINCT ip FROM visits AS r1
JOIN (SELECT ROUND(
RAND( ) * (
SELECT MAX( id ) FROM visits)
) AS id
) AS r2
WHERE r1.id >= r2.id
AND ip REGEXP '[A-Za-z0-9]' AND ip NOT REGEXP '\\([^\\)]*www.*\\)'
ORDER BY r1.id ASC
LIMIT 8";
$result=mysql_query($query);
while($row =mysql_fetch_array($result)){
$ip=$row['ip'];
echo "$ip,";
$query=" SELECT * FROM visits WHERE counter='1' ORDER BY id DESC LIMIT 10";
$result=mysql_query($query);
while($row =mysql_fetch_array($result)){
$ip=$row['ip'];
$query=" SELECT * FROM visits WHERE counter='1' ORDER BY id DESC LIMIT 10";
$result=mysql_query($query);
while($row =mysql_fetch_array($result)){
$ip=$row['ip'];
$query=" SELECT DISTINCT ip FROM visits AS r1
JOIN (SELECT ROUND(
RAND( ) * (
SELECT MAX( id ) FROM visits)
) AS id
) AS r2
WHERE r1.id >= r2.id
AND counter='1'
ORDER BY r1.id DESC
LIMIT 10";
$result=mysql_unbuffered_query($query);
while($row =mysql_fetch_array($result)){
$ip=$row['ip'];
echo "$ip,";
Column Type Null Default Comments
id int(11) No
page varchar(50) Yes NULL
flag char(2) Yes NULL
country varchar(50) Yes NULL
abrev char(3) Yes NULL
region varchar(50) Yes NULL
city varchar(50) Yes NULL
latitude double Yes NULL
longitude double Yes NULL
time varchar(20) Yes NULL
ip varchar(100) Yes NULL
counter int(11) Yes NULL
url varchar(100) Yes NULL
SHOW CREATE TABLE visits;
EXPLAIN SELECT DISTINCT ip FROM visits AS r1
JOIN (SELECT ROUND(
RAND( ) * (
SELECT MAX( id ) FROM visits)
) AS id
) AS r2
WHERE r1.id >= r2.id
AND counter='1'
ORDER BY r1.id DESC
LIMIT 10;
EXPLAIN SELECT DISTINCT ip FROM visits AS r1
JOIN (SELECT ROUND(
RAND( ) * (
SELECT MAX( id ) FROM visits)
) AS id
) AS r2
WHERE r1.id >= r2.id
AND ip REGEXP '[A-Za-z0-9]' AND ip NOT REGEXP '\\([^\\)]*www.*\\)'
ORDER BY r1.id ASC
LIMIT 8;
SHOW CREATE TABLE visits;
Table Create Table
visits CREATE TABLE `visits` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`page` varchar(50) DEFAULT NULL,
`flag` char(2) DEFAULT NULL,
`country` varchar(50) DEFAULT NULL,
`abrev` char(3) DEFAULT NULL,
`region` varchar(50) DEFAULT NULL,
`city` varchar(50) DEFAULT NULL,
`latitude` double DEFAULT NULL,
`longitude` double DEFAULT NULL,
`time` varchar(20) DEFAULT NULL,
`ip` varchar(100) DEFAULT NULL,
`counter` int(11) DEFAULT NULL,
`url` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5344957 DEFAULT CHARSET=latin1
EXPLAIN SELECT DISTINCT ip FROM visits AS r1
JOIN (SELECT ROUND(
RAND( ) * (
SELECT MAX( id ) FROM visits)
) AS id
) AS r2
WHERE r1.id >= r2.id
AND counter='1'
ORDER BY r1.id DESC
LIMIT 10;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> system NULLNULLNULLNULL1 Using temporary
1 PRIMARY r1 range PRIMARY PRIMARY 4 NULL4588549 Using where
2 DERIVED NULLNULLNULLNULLNULLNULLNULLNo tables used
3 SUBQUERY NULLNULLNULLNULLNULLNULLNULLSelect tables optimized away
EXPLAIN SELECT DISTINCT ip FROM visits AS r1
JOIN (SELECT ROUND(
RAND( ) * (
SELECT MAX( id ) FROM visits)
) AS id
) AS r2
WHERE r1.id >= r2.id
AND ip REGEXP '[A-Za-z0-9]' AND ip NOT REGEXP '\\([^\\)]*www.*\\)'
ORDER BY r1.id ASC
LIMIT 8;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> system NULLNULLNULLNULL1 Using temporary
1 PRIMARY r1 range PRIMARY PRIMARY 4 NULL3008459 Using where
2 DERIVED NULLNULLNULLNULLNULLNULLNULLNo tables used
3 SUBQUERY NULLNULLNULLNULLNULLNULLNULLSelect tables optimized away
...
AND ip REGEXP '[[:alnum:]]' ...
ALTER TABLE visit ADD INDEX(ip);
ALTER TABLE visit ADD INDEX(counter);
EXPLAIN SELECT DISTINCT ip FROM visits AS r1
JOIN (SELECT ROUND(
RAND( ) * (
SELECT MAX( id ) FROM visits)
) AS id
) AS r2
WHERE r1.id >= r2.id
AND counter='1'
ORDER BY r1.id DESC
LIMIT 10;