使用数据库中的Reverse-LIKE进行SELECT

时间:2017-07-20 18:46:14

标签: c# sql asp.net sqlite

我想用通配符来存储数据,比如

  • "我是%,希望得到您的帮助"

  • "感谢%"

稍后,我想使用类似

的字符串从中检索数据
  • "我是Pruthvesh Pipaliya,希望得到你的帮助"

  • "谢谢X先生"

在SQLite中有没有办法做到这一点? 如果不是在SQLite中,他们是否可以使用任何其他数据库或任何其他技术?

3 个答案:

答案 0 :(得分:1)

我会在你的应用层而不是数据层进行替换。你用asp.net和sql标记了这个问题,所以像:

SELECT * FROM myTable WHERE messageId = 4

获取消息模板

我还会将您的通配符更改为.net字符串替换格式。因此,例如,在数据库中存储为:

"Thanks {0}."

而不是

"Thanks %."

然后在应用程序中使用:

var salutationTemplate = >> record from db <<
var salutation = string.Format(salutationTemplate, "Name to replace");

这将使用之后的值替换{0}(您也可以使用{1},{2}等)。

答案 1 :(得分:0)

LIKE运算符需要左侧的字符串和右侧的图案。所以给它:

SELECT *
FROM MyTable
WHERE 'Thanks Mr. X' LIKE MyColumn;

答案 2 :(得分:0)

AFAIK你必须将完整的记录(列)存储在数据库中。然后你可以使用java(例如)创建如下所示的预处理语句。

String query = "SELECT ... FROM ... WHERE ..."+ //
"AND UPPER(INTRODUCTION) LIKE UPPER(?)";
PreparedStatement pstmt = conn.prepareStatement(query);
stmt.setString(1, "I am %, want your help%");

此外,如果您尝试创建通用电子邮件,则可以使用模板机制。