psql查询没有返回正确的结果?

var searchValue = 'shahid'; var query = ("select * from students where name ilike '%"+searchValue+"%'"); 

这是我的psql查询,但它没有返回任何值。 所以我只是安慰查询知道执行。

查询正在执行为:

 select * from students where name ilike 'hahid%' 

当我把search值(Shahid)的第一个字母大写时,它完全执行。

如果你想传递大写,你应该转换variablessearchValue例如。

 var newSearchValue = (select initcatp(searchValue)) ; 

这将把'shahid'转换为'Shahid'然后在你的查询variables中使用这个。

这在左边缺less一个'%',只会匹配 hahid 开头的 hahid

  select * from students where name ilike 'hahid%' 

这不一样

 select * from students where name ilike 'Shahid%' 

这将只匹配 Shahid 开头的东西。 现在,如果你想要的东西,将匹配任何与hahid然后你想要的

  select * from students where name ilike '%hahid%' 

顺便说一句,你的例子是非常不安全的,如果searchValue来自I / O(用户,文件,networking等)。