Я пытаюсь использовать MapSqlParameterSource для создания запроса с помощью предложения Like.
Код выглядит примерно так. Функция, содержащая его, получает имяParam:
String namecount = "SELECT count(*) FROM People WHERE LOWER(NAME) LIKE :pname ";
String finalName= "'%" +nameParam.toLowerCase().trim() + "%'";
MapSqlParameterSource namedParams= new MapSqlParameterSource();
namedParams.addValue("pname", finalName);
int count= this.namedParamJdbcTemplate.queryForInt(namecount, namedParams);
Это не работает правильно, давая мне где-то между 0-10 результатами, когда я должен получать тысячи. Я хочу, чтобы окончательный запрос выглядел так:
SELECT count(*) FROM People WHERE LOWER(NAME) LIKE '%name%'
но это, очевидно, не происходит. Любая помощь будет оценена.
Изменить:
Я также попытался поставить '% в SQL, например
String finalName= nameParam.toLowerCase().trim();
String namecount = "SELECT count(*) FROM People WHERE LOWER(NAME) LIKE '%:pname%' "
;
но это тоже не работает.