SQL LIKE vba HTTP 请求中的“%...”

SQL LIKE '%...' in vba HTTP request

我正在尝试 运行 在 Excel 的宏中对 Salesforce REST API 进行 SOQL 查询。我正在使用 LIKE 语句检查是否有任何具有相同域的电子邮件地址,如下所示:

q=SELECT+email+FROM+Contact+WHERE+email+LIKE+'%@domain.com'

这只是给 HTTP 请求的参数,域是占位符。

当我 运行 使用 Postman 发出完全相同的请求时,我从服务器得到了正确的响应 ,但是在 Excel 中我得到了错误 400 bad request.

当删除 % 时,它接受了请求,但是它显然找不到任何条目,因为它正在寻找确切的字符串 "@domain.com"

vba 中的 % 符号是否存在任何已知问题?或者任何其他建议可能是什么问题?

问题不在于 VBA,而是在于您的 HTTP 查询。您需要转义百分号 (%),这是一个特殊字符。我猜 Postman 正在为你做这件事。

因此,尝试:

q=SELECT+email+FROM+Contact+WHERE+email+LIKE+'%25@domain.com'

参见:https://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_the_percent_character

如果这还不足以使查询成功,您不妨转义 arobas 符号 (@):

q=SELECT+email+FROM+Contact+WHERE+email+LIKE+'%25%40domain.com'