【发布时间】:2021-07-11 14:18:53
【问题描述】:
假设查询如下所示:
SELECT Id FROM Contact WHERE <some filter here>
我想补充一下:
AND field = value
换句话说:如果查询以 WHERE 结尾(没有其他部分/语句,例如“LIMIT”等),您可以始终添加 AND 并且不中断吗?
【问题讨论】:
标签: sql salesforce soql
假设查询如下所示:
SELECT Id FROM Contact WHERE <some filter here>
我想补充一下:
AND field = value
换句话说:如果查询以 WHERE 结尾(没有其他部分/语句,例如“LIMIT”等),您可以始终添加 AND 并且不中断吗?
【问题讨论】:
标签: sql salesforce soql
不确定我是否理解了这个问题,我认为这不是最好的方法。 无论如何,我认为它总是可能的。注意有一个不以“;”结尾的“一些过滤器”并在您要添加的内容之前留一个空格。确保您使用的属性与所选表兼容。
【讨论】:
不,有些查询在末尾添加 AND field=value 会导致查询无效。最简单的示例是其中包含 OR 子句的示例。
select name from Contact where name like 'a%' or name like 'z%'
添加 and 子句给出
select name from Contact where name like 'a%' or name like 'z%' AND email=null
运行时会出现格式错误的查询错误。
MALFORMED_QUERY:
name like 'a%' or name like 'z%' AND email=null
^
ERROR at Row:1:Column:64
unexpected token: AND
【讨论】:
SELECT Id FROM Contact WHERE (name like 'a%' or name like 'z%') 这消除了这个问题。你认为这就是所有可能出错的地方吗?