Java程序中模糊查询问题
Stringsql="select*fromtablewhereNamelike'%"+keyword+"%'";和Stringsql="select*fromtable...
String sql = "select * from table where Name like '%"+keyword+"%'";
和
String sql = "select * from table where Name like '%keyword%'";
还有
String sql = "select * from table where Name like %keyword%";
有什么区别?我觉得都一样
String sql = "select * from table where Name like '_keyword_'";
与
String sql = "select * from table where Name like '%keyword%'";
又有什么区别?是不是匹配字符的区别? 展开
和
String sql = "select * from table where Name like '%keyword%'";
还有
String sql = "select * from table where Name like %keyword%";
有什么区别?我觉得都一样
String sql = "select * from table where Name like '_keyword_'";
与
String sql = "select * from table where Name like '%keyword%'";
又有什么区别?是不是匹配字符的区别? 展开
4个回答
展开全部
String sql = "select * from table where Name like '%"+keyword+"%'"
这个是拼接字符串 keyword是变量 可以在类里面定义成其他字符
String sql = "select * from table where Name like '%keyword%'";
这个只能是查找keyword不是变量 只是说查找keyword字符串
String sql = "select * from table where Name like %keyword%";
而这个应该会报错的 因为必须加引号
String sql = "select * from table where Name like '_keyword_'";
这个应该也会有问题吧 因为_是匹配单个字符的
这个是拼接字符串 keyword是变量 可以在类里面定义成其他字符
String sql = "select * from table where Name like '%keyword%'";
这个只能是查找keyword不是变量 只是说查找keyword字符串
String sql = "select * from table where Name like %keyword%";
而这个应该会报错的 因为必须加引号
String sql = "select * from table where Name like '_keyword_'";
这个应该也会有问题吧 因为_是匹配单个字符的
展开全部
你把这个稍微改改就行了,用StringBuilder 拼的sql语句,那样的话就会实现“果输入为空就输出所有”其他的一样
public static List getString(String name){
String sql = null;
StringBuilder str = new StringBuilder();
str.append("select * from 12.guzhang ");
if(name!=null||name==""){
str.append(" and name like '%"+name+"%'");
}
sql=str.toString();
List carboss = new ArrayList();
Connection con = JDBC.getConnection();
Statement st = null;
ResultSet re = null;
try {
st = con.createStatement();
re = st.executeQuery(sql);
while(re.next()){
carboss.add(re.getInt(1));
carboss.add(re.getString(2));
carboss.add(re.getString(3));
}
return carboss;
} catch (SQLException e) {
e.printStackTrace();
}finally{
JDBC.reclose(re, st, con);
}
return null;
}
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
public static List getString(String name){
String sql = null;
StringBuilder str = new StringBuilder();
str.append("select * from 12.guzhang ");
if(name!=null||name==""){
str.append(" and name like '%"+name+"%'");
}
sql=str.toString();
List carboss = new ArrayList();
Connection con = JDBC.getConnection();
Statement st = null;
ResultSet re = null;
try {
st = con.createStatement();
re = st.executeQuery(sql);
while(re.next()){
carboss.add(re.getInt(1));
carboss.add(re.getString(2));
carboss.add(re.getString(3));
}
return carboss;
} catch (SQLException e) {
e.printStackTrace();
}finally{
JDBC.reclose(re, st, con);
}
return null;
}
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String keyword = "Hello World"
String sql = "select * from table where Name like '%"+keyword+"%'";
和
String sql = "select * from table where Name like '%keyword%'";
还有
String sql = "select * from table where Name like %keyword%";
有什么区别?我觉得都一样
第一个SQL会是:
select * from table where Name like '%Hello World%'
意思是,找name里面有 Hello World 的。
第二个SQL会是
select * from table where Name like '%keyword%'
意思是,找name里面有 keyword 的。
第三个SQL 则是:
select * from table where Name like %keyword%
语法错误!
String sql = "select * from table where Name like '_keyword_'";
与
String sql = "select * from table where Name like '%keyword%'";
又有什么区别?是不是匹配字符的区别?
like '_keyword_' 这里的 _ 意思是 1个字符
也就是说, 如果是 hahakeywordxixi 是不匹配的。
like '%keyword%' 这里的 % 意思是 1个或多个字符
也就是说, 如果是 hahakeywordxixi 是匹配的。
String sql = "select * from table where Name like '%"+keyword+"%'";
和
String sql = "select * from table where Name like '%keyword%'";
还有
String sql = "select * from table where Name like %keyword%";
有什么区别?我觉得都一样
第一个SQL会是:
select * from table where Name like '%Hello World%'
意思是,找name里面有 Hello World 的。
第二个SQL会是
select * from table where Name like '%keyword%'
意思是,找name里面有 keyword 的。
第三个SQL 则是:
select * from table where Name like %keyword%
语法错误!
String sql = "select * from table where Name like '_keyword_'";
与
String sql = "select * from table where Name like '%keyword%'";
又有什么区别?是不是匹配字符的区别?
like '_keyword_' 这里的 _ 意思是 1个字符
也就是说, 如果是 hahakeywordxixi 是不匹配的。
like '%keyword%' 这里的 % 意思是 1个或多个字符
也就是说, 如果是 hahakeywordxixi 是匹配的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把这个稍微改改就行了,用StringBuilder 拼的sql语句,那样的话就会实现“其实并不一定是你模糊查询的错误,兴许事哪步漏掉了,再以着急更不好找,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询