今天在處理sql查詢的時候遇到了like查詢不到的問題,於是對問題進行剖析
問題:
select * from v_workflow_rt_task_circulate where Name like '%[admin]請假申請[2017-02-13至2017-02-13]%'
查詢不到,但是在數據庫中是存在在這一條數據的。
修改後:
select * from v_workflow_rt_task_circulate where Name like '%[[]admin]請假申請[[]2017-02-13至2017-02-13]%'
對於模糊查詢需要對於特殊字符的處理(下劃線_,百分號%,方括號[,尖號^)
對了以上的字符直接使用方括號包起來([])例如:[_]、[%]、[[]、[^]。
/** * 模糊查詢需要對於特殊字符的處理(下劃線_,百分號%,方括號[],尖號^) * @param Name * @return */ private String handleName(String name){ if(StringUtils.isEmpty(name)){ return null; } return name.replace("_", "[_]").replace("%", "[%]").replace("[", "[{]").replace("^", "[^]"); }
以上所述是小編給大家介紹的SqlServer中模糊查詢對於特殊字符的處理,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對幫客之家網站的支持!