我的服务器数据库花了太长时间才能通过单独的线程运行两个sql查询。我这样做在PHP中:一个SQL查询而不是三个sql查询
$First=mysql_query("SELECT `ID`,`Country` FROM `Users` WHERE `IP`='".$ip."'",$connection);
$row=mysql_fetch_assoc($First);
$id=$row['ID'];
$ucountry=$row['Country'];
$opt=mysql_query("SELECT Size,Paper,Zip FROM Tools WHERE (Users LIKE '%".$id."%') OR (Users LIKE '".$id."%') OR (Users LIKE '%".$id."') OR (Users LIKE '".$id."') OR (Users LIKE 'All users') OR (Country LIKE '".$ucountry."') OR (Country LIKE 'All countries')",$connection);
如何在只有一个查询在mysql中做所有这些东西?
我尝试这样做:
SELECT (SELECT `ID` FROM `Users` WHERE `IP`='xx.xx.xx.xx' ) AS UID, (SELECT `Country` FROM `Users` WHERE `IP`='xx.xx.xx.xx' ) AS UCountry, (SELECT Size,Paper,Zip FROM Tools WHERE (Users LIKE CONCAT('%#',UID,'#%')) OR (Users LIKE CONCAT('#',UID,'#%')) OR (Users LIKE CONCAT('%#',UID,'#')) OR (Users LIKE CONCAT('#',UID,'#')) OR (Users LIKE 'All users') OR (Country LIKE UCountry) OR (Country LIKE 'All countries'))
通过将其作为一个查询,您不一定会使它更快。事实上,它通常变得更慢。 – 2012-03-28 20:00:00
OR(Users LIKE'%“。$ id。”%')OR(Users LIKE'“。$ id。”%')OR(Users LIKE'%“。$ id。”')OR(Users LIKE' “。$ id。”')或(用户LIKE'所有用户')'? – 2012-03-28 20:00:31
为什么每个比较都有'LIKE'? '='可能更快。 – 2012-03-28 20:03:43