Mysql 选择除点击的最后一个id以外的所有id>;1000

Mysql 选择除点击的最后一个id以外的所有id>;1000,mysql,Mysql,我有一个添加新闻的数据库。我需要显示点击率>1000但没有最后id的新闻 我试过这样做 SELECT * FROM news WHERE newsid != (SELECT MAX(newsid) FROM news) AND hits > 1000 ORDER BY newsid DESC 但这和这个一样 SELECT * FROM `news` WHERE hits > 1000 ORDER By newsid DESC 它显示点击率>1000

我有一个添加新闻的数据库。我需要显示点击率>1000但没有最后id的新闻

我试过这样做

SELECT * 
  FROM news 
 WHERE newsid != (SELECT MAX(newsid) FROM news) 
   AND hits > 1000 
 ORDER 
    BY newsid DESC
但这和这个一样

SELECT * FROM `news` WHERE hits > 1000 ORDER By newsid DESC

它显示点击率>1000的所有新闻。我哪里出错了?

我想您需要这个查询:

SELECT * 
FROM news 
WHERE newsid != (SELECT MAX(newsid) FROM news WHERE hits > 1000) 
  AND hits > 1000 
ORDER BY newsid DESC

第一个查询似乎没有考虑通过
newsid
进行过滤,但是如果
max(newsid)
记录了
点击次数,那么发生的情况是内部
SELECT
从整个表中获取
max(newsid)
,而不仅仅是点击次数超过1000次的表。在内部
SELECT
中添加
WHERE hits>1000
子句可以解决您的问题。

请参阅非常感谢UU。这就是我需要的。我不知道该说些什么,除了再一次谢谢你:)