<%   
String sql="select count(*) from 人口基本信息 where 姓名 like '%李%'";
rs=stmt.executeQuery(sql);
int i=0;
while(rs.next())
{
i++;
}
out.println(i+"");
%>

解决方案 »

  1.   

    将“姓名 like '李'”改为
    姓名 like '李%'
      

  2.   

    谢谢各位的回帖。我尝试着做了,但仍然得不到记录数.我将where 及后面的去掉了。可还是不行TO : rainshow(要学习的那样多,时间却那么的少) 
    照你的做了。可返回为1( 仅为i累加了一次)
      

  3.   

    你用while 并累加i,想得到姓李的人数,那你的sql 应该写成:
    select * from 人口基本信息 where 姓名 like '%李%'"
    不是count(*)
      

  4.   

    To: bobcat79(老猫) 
        先谢过。    我的目的是希望在查询的过程中得到记录数。而不需用rs.last();rs.getRow()....这样会使得效率变得很低。。
      

  5.   

    对,同意,
    如果你要计算人数用i累加,就直接select 就可以了,不用count,如果你count直接改成
    like"李%"就行了
      

  6.   

    to:lmyabc(风之舞) 
       先谢过..   String sql="select count(*) from 人口基本信息 where 姓名 like '李%'";
       rs=stmt.executeQuery(sql);
       int i=0;
       while(rs.next())
       {
    i++;
        }
    out.println(i+"");我这样试过,可还是为1...不知为何.
      

  7.   

    拜托,你select count(*)干嘛啊
    改成"select * from 人口基本信息 where 姓名 like '李%'"如果你用select count(*)就返回一行记录,就是所有记录的总数,sql没学好~~
      

  8.   

    String sql="select count(*) as totalsum from 人口基本信息 where 姓名 like '李%'";
       rs=stmt.executeQuery(sql);
       int i=0;
       if(rs.next()) {
             i = rs.getString("totalsum");
       }
    这里的i不就是记录总数吗
      

  9.   

    1、看一看你需要不需要对汉字进行字符转换。
    2、它只有一条记录,其值为记录个数。
    3、打印出SQL语句看是否正确
      

  10.   

    哈,用count(*),肯定只有一條紀錄呀,改成*就可以了
      

  11.   

    是的,用count(*)只能返回一条记录,改成*或者 姓名 就可以了,如果改成姓名搜索效率会高一些!
      

  12.   

    纯粹一白痴 好好学sql去吧
      

  13.   

    to : joincsdn(云)
    问题已解决......非常感谢!