【问题标题】:Can you add an "AND field = value" to any SOQL query?您可以在任何 SOQL 查询中添加“AND field = value”吗?
【发布时间】:2021-07-11 14:18:53
【问题描述】:

假设查询如下所示:

SELECT Id FROM Contact WHERE <some filter here>

我想补充一下:

AND field = value

换句话说:如果查询以 WHERE 结尾(没有其他部分/语句,例如“LIMIT”等),您可以始终添加 AND 并且不中断吗?

【问题讨论】:

    标签: sql salesforce soql


    【解决方案1】:

    不确定我是否理解了这个问题,我认为这不是最好的方法。 无论如何,我认为它总是可能的。注意有一个不以“;”结尾的“一些过滤器”并在您要添加的内容之前留一个空格。确保您使用的属性与所选表兼容。

    【讨论】:

    • 谢谢。不是我这样做的,我用错了这个问题。我只是想知道它是否可以以某种方式被破坏。
    【解决方案2】:

    不,有些查询在末尾添加 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%') 这消除了这个问题。你认为这就是所有可能出错的地方吗?
    猜你喜欢
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    相关资源
    最近更新 更多