解决搜索时特殊字符的转义问题

This commit is contained in:
heavyrian2012
2023-12-27 20:07:48 +08:00
parent 49ad4f5eb6
commit bc409042b0
@@ -412,7 +412,7 @@ public class DatabaseStore {
connection = DBUtil.getConnection();
String sql = "select u._uid, u._name, u._display_name, u._portrait, u._mobile, u._gender, u._email, u._address, u._company, u._social, u._extra, u._dt, u._type " +
" from t_user u left join (select _uid, _value from t_user_setting where _scope = 27) s on u._uid = s._uid " +
" where u._display_name like ? and u._type <> 2 and u._deleted = 0 ";
" where u._display_name like ? ESCAPE '!' and u._type <> 2 and u._deleted = 0 ";
if(nameOrIdMatched.size() == 1) {
sql += " and u._uid <> ? and u._name <> ?";
} else if(nameOrIdMatched.size() == 2) {
@@ -430,6 +430,12 @@ public class DatabaseStore {
sql += " offset " + (page * 20 - nameOrIdMatched.size());
}
keyword = keyword
.replace("!", "!!")
.replace("%", "!%")
.replace("_", "!_")
.replace("[", "![");
statement = connection.prepareStatement(sql);
statement.setString(1, "%" + keyword + "%");
if(nameOrIdMatched.size() == 1) {
@@ -3631,7 +3637,7 @@ public class DatabaseStore {
", `_extra`" +
", `_dt` from t_channel";
if (buzzy) {
sql += " where `_name` like ?";
sql += " where `_name` like ? ESCAPE '!' ";
} else {
sql += " where `_name` = ?";
}
@@ -3645,6 +3651,12 @@ public class DatabaseStore {
sql += " offset " + page * 20;
}
keyword = keyword
.replace("!", "!!")
.replace("%", "!%")
.replace("_", "!_")
.replace("[", "![");
statement = connection.prepareStatement(sql);
int index = 1;
if (buzzy) {