$remainingQuery = "select * from $value s
where not exists (
select userID from userLocations ul
where ul.userID = s.userID
) AND (userIP > '') GROUP BY userIP LIMIT 1";
$remainingResults = mysql_query($remainingQuery) or die(mysql_error());
上面的代码执行速度很慢。谁知道为什么?
以下是有关userLocations表的信息。
enum('ipv4', 'ipv6') latin1_swedish_ci
ip_start varbinary(16)
ip_end varbinary(16)
country char(2)
stateprov varchar(80)
city varchar(80)
以下是以$ value
命名的表格之一name varchar(20)
score bigint(20)
log longtext
difficulty int(10)
games int(11)
checkSum text
bought tinyint(1)
time timestamp
bundle int(11)
userID text
userIP text
city text
country text
答案 0 :(得分:0)
我在查询中看到了一些内容。首先,您通过userIP进行分组并限制为1.这将只返回一个用户IP,这是您真正想要的吗?你怎么知道返回哪个用户IP?
也许使用NOT IN
会比你拥有的更快?
SELECT *
FROM table s
WHERE s.userID NOT IN (SELECT userId FROM userLocations) AND (userIP > '')
GROUP BY userIP
LIMIT 1;