0

我正在根据过滤器自动整理电子邮件;过滤条件位于 SQL 表中。据了解,这很完美,但前提是发件人的邮件地址与 sql 表中的完全一样。

一些邮件发件人在每封邮件上使用不同的邮件地址,但邮件地址的某些部分总是相同的(“@abc.com”)。

因此,我只将“@abc.com”作为标准放入 SQL 表中,并且从 Access 中,这个 SQL 语句就像一个魅力:

SELECT MA_Index, beding_body, beding_subj, aktion, FROM Mail_Automatik _ 
where (empfaenger = 'name_recipient' AND 'noreply-4689756@abc.com' like '*'&absender&'*');

但是我的代码直接与 sql-Server 对话,并且它不接受该部分:

 like '*'&absender&'*'

现在我也试过了

LIKE '*' + absender + '*'

现在没有发现错误了,但也没有结果(应该有的地方)

有任何想法吗?

谢谢!

4

1 回答 1

2

您需要使用+for T-Sql 字符串连接和 '%' 作为通配符来匹配任何字符。

试试这个(如果你传递内联 sql):

like '%' + absender + '%'

如果您使用参数化查询来避免 sql 注入攻击而不是将变量直接传递到 sql server 会更好。特别是如果这些变量是用户键入的值。

对于参数化查询:

"Select ... Where empfaenger = @name_recipient AND @email like '%' + absender + '%'"

然后将这些参数(@name_recipient@email)添加到命令对象。

于 2013-09-20T09:05:55.110 回答