我想用MapSqlParameterSource創建一個查詢使用Like子句。春季喜歡條款
代碼是這樣的。包含它的函數接收nameParam:
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%' "
;
但這也不起作用。
你是我的英雄。非常感謝。我一直在努力研究這一段很長的時間。 – Chris 2010-07-14 18:14:33
如何接受一些被接受的答案? – Jeff 2010-07-14 19:05:26
將%符號連接到參數中並將其直接放入sql查詢中的好處是什麼? SELECT count(*)FROM WHERE LOWER(NAME)LIKE'%'+:pname +'%' – 2016-07-09 02:50:41