mysql查询问题

时间:2012-01-04 17:52:13

标签: php mysql

此查询是否存在任何明显问题? Rand()可以用于连接吗?

$sql_result = mysql_query("
  SELECT p.name as propname, p.city, p.id, m.name, m.overall_XP 
  FROM properties p INNER JOIN mobsters m ON p.owner = m.id 
  WHERE p.owner != '$id' AND m.level > '100' 
   AND m.gang != '$gang_id' ORDER BY RAND() LIMIT 0, 1", $db); 

3 个答案:

答案 0 :(得分:2)

你试过吗?如果您发布诸如“这是我的查询Y而我收到错误X”这样的问题,您会发现在SO上获得最佳答案。我做错了什么?

但是在回答你的问题(某种程度上)时,很多人建议在MySQL中使用RAND(),因为MySQL的作用是将随机数应用于结果集中的每一行。随着结果集变大,它可以很快开始耗尽您的性能。我们有一个解决方法(您可以在PHP中实现)here

答案 1 :(得分:0)

您应该尝试回显mysql_query:

echo "SELECT p.name as propname, p.city, p.id, m.name, m.overall_XP FROM properties p INNER JOIN mobsters m ON p.owner = m.id WHERE p.owner != '$id' AND m.level > '100' AND m.gang != '$gang_id' ORDER BY RAND() LIMIT 0, 1";
exit;

然后将其粘贴到phpMyAdmin中以查看是否存在任何问题/错误。

答案 2 :(得分:0)

我认为你的问题是合乎逻辑的,它是在你的查询结构中,因为我没有看到任何错误。您确定使用的是正确的连接字段,还是您确定不正确地限制结果?