Php 不在mysql子查询限制中

Php 不在mysql子查询限制中,php,mysql,subquery,Php,Mysql,Subquery,有人知道我如何处理1235-这个版本的MySQL还不支持“LIMIT&IN/ALL/any/somesubquery”错误吗 我的问题如下我已经读到我可以升级mysql,但这是不可能的: $query = @mysql_query("SELECT * FROM posts WHERE postid NOT IN ( SELECT postid FROM log

有人知道我如何处理1235-这个版本的MySQL还不支持“LIMIT&IN/ALL/any/somesubquery”错误吗

我的问题如下我已经读到我可以升级mysql,但这是不可能的:

$query = @mysql_query("SELECT * FROM posts 
                       WHERE postid NOT IN 
                       ( SELECT postid FROM log 
                         ORDER BY posted DESC
                         LIMIT 10) 
                       ORDER BY (RAND() * Multiplier) 
                       LIMIT 1");
根据这一点,您可以使用以下难看的解决方法:

SELECT * FROM t1 WHERE s1 NOT IN 
(SELECT * FROM (SELECT s2 FROM t2 ORDER BY s1 LIMIT 1) AS alias)

您可以使用JOIN重写查询:

挑选* 从自然左连接 按已过帐描述限制从日志订单中选择已过帐描述10 T 其中t.postid为空 兰特订购 限制1 但是,请注意,兰德公司的订单非常昂贵。不仅必须为每个记录计算一个随机值,而且还必须对结果进行排序。索引是无用的

如果列col包含唯一的整数,那么使用col上的索引可以非常快速地获得随机记录,如下所示:

挑选* 从自然左连接 按已过帐描述限制从日志订单中选择已过帐描述10 不加入 从帖子中选择RAND*MAXcol作为RAND posts.col>=r.rand上的r 其中t.postid为空 限制1 注意,这种随机性的均匀性将取决于任何其他滤波发生后col中整数的分布