日期:2014-05-16  浏览次数:21047 次

Sqlite 数据库怎么得到指定行数的记录?
比如我要得到50条数据,我写的SQLite的语句是:

SELECT dwID,szName FROM DevItem ORDER BY dwID LIMIT 0,50

可问题是没有50条它也会返回50条(从第一条开始重复),那怎么才能让它在没有足够的记录的时候返回所有的不重复的记录呢?

------解决方案--------------------
有这种写法不?SELECT distinct dwID,szName FROM DevItem ORDER BY dwID LIMIT 0,50
------解决方案--------------------
SQLLITE里面没有DISTINCT 可以用GROUP BY 代替

SELECT  dwID,szName FROM DevItem  group by dwID,szName  ORDER BY dwID LIMIT 0,50
 
------解决方案--------------------
楼主的叙述有误吧,我做了试验,不足50的返回的是实际的数目,而不是50条
The LIMIT clause is used to place an upper bound on the number of rows returned by the entire SELECT statement. 
官方文档也说的是设置上限,而非实际数目
------解决方案--------------------
sqlite> select * from auth_user limit 0,10;
1
------解决方案--------------------
tsadmin
------解决方案--------------------
lbgwjl@gmail.com
------解决方案--------------------
pbkdf2_sha256$12000$qJlRD0u56gwU$EL+qnc0X3bFtgjZ4aXlATdlBJwJPmoJH5CHZvHHEj9A=
------解决方案--------------------
1
------解决方案--------------------
1
------解决方案--------------------
1
------解决方案--------------------
2014-03-17 08:11:45.371657
------解决方案--------------------
2011-11-28 10:55:56
sqlite> select id from auth_user limit 0,10;
1
sqlite> select id from auth_user limit 10;
1
sqlite> select id from auth_user order by id limit 10;
1

------解决方案--------------------
我也觉得不应该总是返回50行,截图上来看看