查询字符串中包含字符串

在jdbc的MySQL中可以不用写比较符,比如:

    select * from t_user t where find_in_set('1',t.username) ;

    当然也可以这样用:

    select * from t_user t where find_in_set('1',t.username)>0

    而在hibernate的HQL语句中,必须这样用:

    from User t where find_in_set('1',t.username)>0

userName的值包含多个"11,125,52";
tringBuffer sql=new StringBuffer();
sql.append("from User t where t.companyId=0 ");
String[] username={"11,12,55,4"};
 sql.append(" and ( ");
 for(int i=0;i<username.length;i++){
 if(i==0){
 sql.append(" find_in_set('"+username[i]+"',t.username)>0");
 }else{
 sql.append(" or find_in_set('"+username[i]+"',t.username)>0");
 }
 }
 sql.append(" ) ");
    即‘>0’必须带上,否则会报错。 

 

猜你喜欢

转载自pxy.iteye.com/blog/2393837