mysql中使用了limit查询,如何能够获得查询的数量

ldl123292 发布于 2013/07/23 16:48
阅读 6K+
收藏 0
我从数据库中取出前十条数据
select * from t limit 0,10
但是有的表中数据并不够10条,这时该怎么获得数据库里的数据总数
select count(*) from t limit 0,10 这样不行,得到的是所有的数据,limit限制就没有了作用
加载中
0
八月下沙
八月下沙

貌似有点岐义
1.如果你只是想知道通过Sql语句得到的数据条数,那么最多是10条,具体条数就不需要查数据库了吧,select * from table limit 10 后,你会放到 ArrayList 之类的结构里,直接通过 list.size() 就可以知道实际得到的数据数量
2.如果你想知道同样条件下,一共有多少条数据,我们现在的做法是分开查两次(条件保持一至),select * from table where condition limit 10,select count(*) from table where condition ==>得到同条件下总数

0
游侠
游侠

select count(*) from t; 是这个意思吗?

游侠
游侠
回复 @ldl123292 : 还是没明白。
ldl123292
ldl123292
加上limit之后
0
傲罗
傲罗
不行就limit完后,程序再count下
leo108
leo108
正解
0
罪恶的花生
罪恶的花生
select count(*) from (select  * from  t limit 0,10) as a
0
YYXX007
YYXX007
select count(*) from (select * from t limit 10)a;
YYXX007
YYXX007
select count(*) from (select * from t limit 0,10) as a
ldl123292
ldl123292
这个也不行啊,一直提示列名重复
0
Jeky
Jeky
SELECT COUNT(*) FROM (SELECT * FROM t LIMIT 0, 10) AS alias_t;
虽然没完全看懂 不过大概估计你是这个意思
MZHS
MZHS
敢脚count(*)有个鸟意义啊,既然都limit了, limit0,10 10-0不就是个数么,再者说了,查询出来后 .size()也是个数,搞鸡毛啊!
ldl123292
ldl123292
语句可行,但是我的条件中使用了inner join 就一直报那个错
ldl123292
ldl123292
Duplicate column name 'ajbs'
0
mark35
mark35
直接在应用程序中统计返回的行数不就得了
0
LianyouCQ
LianyouCQ

简单的可能是这样的。

SELECT CASE 
  WHEN (SELECT count(*) FROM t) < 10 
     THEN (SELECT count(*) FROM t) 
  ELSE 10 
END countNum;

返回顶部
顶部