簡體   English   中英

如何使用Dapper使用WILDCARD

[英]How to use WILDCARD using Dapper

如何使用Dapper在postgre DB中使用LIKE通配符? 我有以下代碼:

string query = "SELECT name, index FROM article WHERE prefiks LIKE :prefix ;";
return conn.Query<myModel>(query , new { prefix = searchingValue }).ToArray();

其中searchingValue是一個簡單的字符串。 我嘗試了幾種已經發現的組合:

return conn.Query<myModel>(query , new { prefix = "%" + searchingValue + "%" }).ToArray();

要么

string query = "SELECT name, index FROM article WHERE prefix LIKE '%' || :prefix || '%'"
return conn.Query<myModel>(query , new { prefix = searchingValue }).ToArray();

但是什么都行不通。 我想以上解決方案對MS SQL來說很好,但在postgre下不起作用;

以下應該工作:

string query = "SELECT name, index FROM article WHERE prefiks LIKE :prefix ;";
searchingValue = "%" + searchingValue + "%";
return conn.Query<myModel>(query , new { prefix = searchingValue }).ToArray();

或者簡單地,將連接合並為一行:

return conn.Query<myModel>(query , new { prefix = "%" + searchingValue + "%" }).ToArray();

或者,您可以在SQL本身中使用字符串連接:

string query = "SELECT name, index FROM article WHERE prefiks LIKE CONCAT('%', :prefix, '%') ;";
return conn.Query<myModel>(query , new { prefix = searchingValue }).ToArray();

注意:我不是postgresql專家; 因此您可能需要調整一些語法; 以防萬一。

這個問題討論有關postgresql區分大小寫的問題。 可能會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM