Mysql没有按预期返回结果

时间:2011-05-09 10:50:55

标签: php mysql twitter

任何人都可以看到这个SQL查询有什么问题。

这不返回任何结果,虽然同样的查询输出以便计算vars然后在mysql中运行返回3800+结果

$query = "SELECT * FROM twitter_user JOIN twitter_connection
          ON (twitter_user.tu_id = twitter_connection.tc_tu_id) 
          WHERE tc_followyou = 1 AND tc_twitterapp_user_id = ". $mytwitterid . " 
          LIMIT " . $perpage . " OFFSET " . $twitter_offset;

然而,同样的查询可以正常工作

$query = "SELECT * FROM twitter_user JOIN  twitter_connection 
          ON (twitter_user.tu_id = twitter_connection.tc_tu_id)
          WHERE tc_youfollow = 1 AND tc_twitterapp_user_id = ". $mytwitterid . " 
          LIMIT " . $perpage . " OFFSET " . $twitter_offset;

唯一的区别是使用tc_followyou vs tc_youfollow

两者都在同一个表中,没有NULL记录和整数。

如果我使用完全相同的php代码和交换tc_followyou获取tc_youfollow,我会得到一个结果。

我不知道为什么,但如果脚本在亚马逊RDS服务器上运行Mysql v5.5.8-log,另一台运行mysql 5.1.52的服务器

,这只是一个问题

按预期工作。

为什么服务器版本或字段名称会导致此问题?

我很难过。

感谢Stephen

更新:已解决此问题。问题是我运行的实际代码没有限制。我不小心对数据库运行以获得“总计”。这是因为失败的表有如此多的记录,它没有返回结果。我接受了解决方案,因为这个人帮助我完成了一个有助于发现问题的思考过程。

1 个答案:

答案 0 :(得分:1)

如果您不使用LIMIT提供确定性排序顺序,则

ORDER BY不可靠。按照设计,结果行的顺序是任意的,除非您指示SQL对它们进行排序。当您使用LIMIT子句时,这可能会特别影响返回的行。