如何使用 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 专家;所以你可能需要调整一些语法;以防万一。
This问题讨论了 postgresql 的大小写敏感性;可能会有帮助。
关于c# - 如何使用 Dapper 使用 WILDCARD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56889262/