2016-12-07 28 views
1
var searchValue = 'shahid'; 
var query = ("select * from students where name ilike '%"+searchValue+"%'"); 

これは私のpsqlクエリですが、値は返されません。私は実行を知るためにクエリをコンソールにするだけです。psqlクエリで適切な結果が返されませんか?

クエリが実行されているとして:私は検索値(シャヒド)の最初の文字を大文字にすると、それは完全に実行されます

select * from students where name ilike 'hahid%' 

答えて

0

これは、左側の「%」が欠けている、唯一のhahid

select * from students where name ilike 'hahid%' 

で始まるものと一致しますそれは一致します。この

select * from students where name ilike 'Shahid%' 

と同じではありませんShahidで始まります。 searchValueがI/O(ユーザー、ファイル、ネットワークなど)から来ている場合は、hahidと何もマッチします何かをしたい場合さて、あなたはところで

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

をしたい、あなたの例は非常に危険です。

1

大文字で渡す場合は、変数searchValueを などに変換する必要があります。

var newSearchValue = (select initcatp(searchValue)) ; 

これは 'shahid'を 'Shahid'に変換します。これをクエリ変数で使用します。

関連する問題