在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’必须带上,否则会报错。