失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > mysql通配符escape使用_MySql的like语句中的通配符:百分号 下划线和escape 的使用...

mysql通配符escape使用_MySql的like语句中的通配符:百分号 下划线和escape 的使用...

时间:2020-11-27 17:31:44

相关推荐

mysql通配符escape使用_MySql的like语句中的通配符:百分号 下划线和escape 的使用...

MySql的like语句中的通配符:百分号、下划线和escape

%代表任意多个字符

select * from user where username like '%huxiao';

select * from user where username like 'huxiao%';

select * from user where username like '%huxiao%';

_代表一个字符

select * from user where username like '_';

select * from user where username like 'huxia_';

select * from user where username like 'h_xiao';

如果我就真的要查%或者_,怎么办呢?使用escape,转义字符后面的%或_就不作为通配符了,注意前面没有转义字符的%和_仍然起通配符作用

select username from gg_user where username like '%xiao/_%' escape '/';

select username from gg_user where username like '%xiao/%%' escape '/';

个人开发实例:

/**

* 根据查询条件分页查询广告包信息-广告包管理

*

* @param adPackageName

* @param pageSize

* @param pageNum

* @return

*/

@SuppressWarnings("unchecked")

public List> listAllAdByPage(String adPackageName,

int pageSize, int pageNum) {

StringBuffer sbHQL = new StringBuffer(256);

sbHQL.append(" from AdPackage as P ");

sbHQL.append(" ,AdTemplate as T ");

sbHQL.append(" where P.adTemplateId = T.adTemplateId ");

sbHQL.append(" and P.dataStat = " + Constant.DATA_STAT_ON);// 选择0-有效数据

List params = new ArrayList();

setQueryCondition(adPackageName, sbHQL, params);

sbHQL.append(" order by P.adPackageCreaterTime desc");

return getHibernateTemplate().executeFind(

new QueryByHqlWithHibernateCallBack(sbHQL.toString(), params,

pageNum, pageSize));

}

/**

* 设置广告包管理模块查询条件

* 0826 查询”_“处理

* @param adPackageName

* @param sbHQL

* @param params

*/

private void setQueryCondition(String adPackageName, StringBuffer sbHQL,

List params) {

if (!StringUtils.isEmpty(adPackageName)) {

sbHQL.append(" and P.adPackageName like ? escape '/'");

params.add("%" + adPackageName.trim().replaceAll("_", "/_") + "%");

}

}

如果觉得《mysql通配符escape使用_MySql的like语句中的通配符:百分号 下划线和escape 的使用...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。