求助一条mysql select语句

BENNEE 发布于 2012/03/03 17:22
阅读 322
收藏 0

如下图,想调用全部除了前5条posids值为1的数据
select * from XX_TABLE where ??

加载中
0
artai
artai
用SQL造了, 再在程式裡刪去不想要的資料, 不成嗎?
1
walden
walden
select * from XX_table where id<6 having posids=1;
0
红薯
红薯
这一条SQL搞不定吧
0
marker
marker
当然用limit a,b
RickyFeng
RickyFeng
@leo108 : 用二楼的方法应是比较好的,select完后 将前5条posids值为1 的unset ,这方法应可以,你试下
leo108
leo108
呵呵,要是Limit能解决,红薯会回那句话么
0
leo108
leo108

你说的前5条是指id<5么,如果是可以试试下面这个

select * from XX_TABLE order by id limit 5,-1
union 
select * from XX_TABLE where id<5 and postid <> 1

leo108
leo108
@RickyFeng : 坐等楼主解释
RickyFeng
RickyFeng
楼主的意思是 前5条posids值为1 的记录,
0
William
William
select *
    from XX_TABLE t
    where not exists ( select top 5 * from XX_TABLE t1 
                           where t1.id = t.id 
                           and t1.posids = 1 )

 

如果是sql server 应该可以这样写, mysql应该把 "top 5" 改成 limit是不是也可以啊?

RickyFeng
RickyFeng
好象不能在 exists or in内用limit 在mysql
0
BENNEE
BENNEE

已解决 我的方法是
程序先获得posids为1的前10条数据的ID,赋值到$unposids 
然后select * from _DB where id not in ($unposids)

RickyFeng
RickyFeng
你可以试下,一定比二楼的方法慢
0
王京伟
王京伟

两条SQL语句 一条查出来 总的记录数  第二条 order by id asc limit 5,maxrows

 

返回顶部
顶部