回 帖 发 新 帖 刷新版面

主题:关于SQL查询中文姓名的问题,请教高手

String stu_name_ori=(String)request.getParameter("stu_name");
String stu_name = new String(stu_name_ori.getBytes("ISO8859_1"), "GBK");
String sql2="SELECT count(Stu_id) as stu_count FROM stu_infor where Name='"+stu_name+"'";
ResultSet sqlRst2=DB2.executeQuery(sql2);
sqlRst2.next

代码大概是这样,如果查询全名stu_count没有问题,可是如果我想查询所有姓"张"的人的个数,stu_count的值总是显示个位数,这是为什么啊

例子:查询张三,stu_count=10
可是查询张,stu_count=2

想不通啊

回复列表 (共6个回复)

沙发

忘了说了,name是学生的名字,stu_id是学号

板凳

可以使用LIKE关键字看看

3 楼

sql语句应该是
SELECT count(Stu_id) as stu_count
FROM stu_infor where Name like '张%'

4 楼

String stu_name_ori=(String)request.getParameter("stu_name");
String stu_name = new String(stu_name_ori.getBytes("ISO8859_1"), "GBK");
String sql2="SELECT count(Stu_id) as stu_count FROM stu_infor where Name like '%"+stu_name+"%'";
ResultSet sqlRst2=DB2.executeQuery(sql2);
sqlRst2.next

5 楼

使用LIKE,查姓张:like '张%'
查包含张:like '%张%'

6 楼

="SELECT count(Stu_id) as stu_count FROM stu_infor where Name like '%"+stu_name+"%'"

我来回复

您尚未登录,请登录后再回复。点此登录或注册