MYSQL限制。可以跳过某些行吗?

时间:2011-09-20 13:10:56

标签: mysql limit

很抱歉,如果这个问题令人困惑。

我继承了一个已经建成的网站,所以我真的不能做太过激烈的事情。

某个页面上的MYSQL查询使用LIMIT仅显示如下相关条目:

comtitlesub.idcts = %s LIMIT 1,3

跳过第一条记录并显示以下三条记录。 我被要求添加一条新记录,这很好,但这是记录号7.记录5和6不应该显示在此页面上,因此将查询更改为:

comtitlesub.idcts = %s LIMIT 1,6

按预期显示所有6条记录。

令人困惑的是,我已经更改了每个记录的ID,以便我的新记录为ID 4,但这并没有什么区别。

是否有一种简单的方法可以“跳过”不需要的记录,或者我是从错误的方向接近这个?

3 个答案:

答案 0 :(得分:2)

在查询结束时添加“order by comtitlesub.idcts”,但在限制子句之前添加。{/ p>

... comtitlesub.idcts = %s ORDER BY comtitlesub.idcts LIMIT 1,6

基本上,更改id不会对它们重新排序,行按照它们的创建顺序存储,并默认以这种方式检索。

答案 1 :(得分:1)

Andrew,LIMIT将根据特定订单进行分隔,在您的情况下,巧合的是默认订单与ID订单相同,现在您已经更改了它,您需要按ID订购:< / p>

ORDER BY comtitlesub.idcts

答案 2 :(得分:1)

我认为最简单的方法是修改您的WHERE子句以排除您想要排除的行。例如:

WHERE comtitlesub.idcts = %s AND someothercol NOT IN ('cat','frog','kazoo')

理想情况下,对于可维护性,您希望someothercol保存稳定数据,而不是数字ID,这可能会随着应用程序数据的变化而变化。