Php MySQL查询问题

Php MySQL查询问题,php,mysql,Php,Mysql,这个查询有什么明显的问题吗?Rand()可以用于联接吗 $sql\u result=mysql\u查询(“ 选择p.name作为propname、p.city、p.id、m.name、m.overall\u XP 从属性p内部加入mobsters m ON p.owner=m.id 其中p.owner!='$id'和m.level>'100' 和m.gang!=“$gang_id”按RAND()排序限制为0,1”,$db); 您应该尝试回显mysql\u查询: echo "SELECT p.na

这个查询有什么明显的问题吗?
Rand()
可以用于联接吗

$sql\u result=mysql\u查询(“
选择p.name作为propname、p.city、p.id、m.name、m.overall\u XP
从属性p内部加入mobsters m ON p.owner=m.id
其中p.owner!='$id'和m.level>'100'
和m.gang!=“$gang_id”按RAND()排序限制为0,1”,$db);

您应该尝试回显mysql\u查询:

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中,以查看是否存在任何问题/错误。

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

您尝试过吗?你会发现你得到了最好的答案,所以如果你发布这样的问题:“这是我的问题Y,我得到了错误X。我做错了什么?”


但在回答您的问题时(有点),许多人建议不要在MySQL中使用像这样的RAND(),因为MySQL所做的是对结果集中的每一行应用一个随机数。随着结果集变得越来越大,它会很快开始消耗您的性能。我们有一个解决方法(可以在PHP中实现)

考虑将其放在CodeReview()上。应该注意的是,在MySQL中,使用
ORDER BY RAND()
通常是一个非常糟糕的主意。。。给你。