2015-01-09 60 views
1
SELECT MAX(issue) AS issue_one FROM issue_list 
WHERE issue NOT IN (SELECT issue FROM issue_list ORDER BY id ASC LIMIT 46); 

这个查询有什么问题。它说。这个版本的MySQL还不支持'LIMIT & IN/ALL/ANY/SOME subquery'这个版本的MySQL尚不支持'LIMIT&IN/ALL/ANY/SOME子查询'

我想在这里做的事情是从issue_list表中取得问题的最大值忽略前46行。

如何做到这一点?

+0

你的版本? – segarci

+0

我的mysql的语言是mysql 5.6.17 – roman

+0

_“这个版本的MySQL还不支持'LIMIT&IN/ALL/ANY/SOME子查询'”_那么你的问题是如何绕过this_? –

回答

2

由于Mihai在他的评论中提到:尝试在另一个子选择中包装子选择。看起来很脏,但与您的原始查询非常接近。因此:

SELECT MAX(issue) AS issue_one 
FROM issue_list 
WHERE issue NOT IN 
(SELECT issue from 
(SELECT issue FROM issue_list ORDER BY id ASC LIMIT 46) x 
); 
+0

谢谢你的工作。 你能否给我建议我在这种情况下做什么? 谢谢。 – roman

+0

@ user2745337每个子查询都需要一个别名,本质上是一个名称,因为它实现了子查询,也就是将其视为一个表。 – Mihai

0

我从来没有得到任何形式限制在子查询中工作。那么,什么对我的作品......

  1. 创建你的情况,这样的限制或其他限制子查询的视图是限制关键字

    Create View viewIssue46 as SELECT issue FROM issue_list ORDER BY id ASC LIMIT 46;

  2. 写入查询像

    SELECT MAX(issue) AS issue_one FROM issue_list WHERE issue NOT IN (select * from viewIssue46)

this usu通过轻松解决这个问题甚至更复杂的查询,再加上你可以在视图和主查询中使用索引。

相关问题