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'
我正在尝试 运行 在 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'