如何使用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下不起作用;
答案 0 :(得分:0)
以下应该有效:
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区分大小写的问题;可能会有所帮助。