SOQL: Populate a Literal List in WHERE IN ClauseSplit a single field into 2 columns for a VF pageSOQL query problem, need assistanceSOQL query with Dataloader using List Literal in WHERE ClauseNot able to escape quote in visualforce page?Where do I find this related list API name to access in query?System.QueryException: unexpected token: :SOQL - Use the size of the list of inner child query in the WHERE clauseCheck field's data availability in WHERE clauseDatetime in WHERE clauseSOQL WHERE IN query

Employee lack of ownership

What is the rarity of this homebrew magic staff?

Did Ender ever learn that he killed Stilson and/or Bonzo?

How to read the value of this capacitor?

Stiffness of a cantilever beam

Existence of subset with given Hausdorff dimension

Why doesn't the EU now just force the UK to choose between referendum and no-deal?

newcommand: Combine (optional) star and optional parameter

How to use deus ex machina safely?

My adviser wants to be the first author

How to terminate ping <dest> &

Gravity magic - How does it work?

Charles Hockett - 'F' article?

Is a party consisting of only a bard, a cleric, and a warlock functional long-term?

Site Collection Administrator has left the building

Opacity of an object in 2.8

If I can solve Sudoku can I solve Travelling Salesman Problem(TSP)? If yes, how?

What should tie a collection of short-stories together?

Science-fiction short story where space navy wanted hospital ships and settlers had guns mounted everywhere

What is the significance behind "40 days" that often appears in the Bible?

Can I use USB data pins as power source

Do the common programs (for example: "ls", "cat") in Linux and BSD come from the same source code?

Hacking a Safe Lock after 3 tries

Declaring defaulted assignment operator as constexpr: which compiler is right?



SOQL: Populate a Literal List in WHERE IN Clause


Split a single field into 2 columns for a VF pageSOQL query problem, need assistanceSOQL query with Dataloader using List Literal in WHERE ClauseNot able to escape quote in visualforce page?Where do I find this related list API name to access in query?System.QueryException: unexpected token: :SOQL - Use the size of the list of inner child query in the WHERE clauseCheck field's data availability in WHERE clauseDatetime in WHERE clauseSOQL WHERE IN query













3















I need to query for an object based on 2 string variables. The first one is a constant but the second one gets passed to the class constructor.



So in the end I want to achieve something like this:



public class MyClass 
private final String STRING_ONE = 'STRING ONE';

public MyClass(String stringTwo)
List<Object__c> objects = [
SELECT Id
FROM Object__c
WHERE Name IN :STRING_ONE, stringTwo
];




This is the part that I can't get the syntax right of WHERE Name IN :STRING_ONE, stringTwo. I know I've seen this somewhere but can't find it on google.










share|improve this question


























    3















    I need to query for an object based on 2 string variables. The first one is a constant but the second one gets passed to the class constructor.



    So in the end I want to achieve something like this:



    public class MyClass 
    private final String STRING_ONE = 'STRING ONE';

    public MyClass(String stringTwo)
    List<Object__c> objects = [
    SELECT Id
    FROM Object__c
    WHERE Name IN :STRING_ONE, stringTwo
    ];




    This is the part that I can't get the syntax right of WHERE Name IN :STRING_ONE, stringTwo. I know I've seen this somewhere but can't find it on google.










    share|improve this question
























      3












      3








      3








      I need to query for an object based on 2 string variables. The first one is a constant but the second one gets passed to the class constructor.



      So in the end I want to achieve something like this:



      public class MyClass 
      private final String STRING_ONE = 'STRING ONE';

      public MyClass(String stringTwo)
      List<Object__c> objects = [
      SELECT Id
      FROM Object__c
      WHERE Name IN :STRING_ONE, stringTwo
      ];




      This is the part that I can't get the syntax right of WHERE Name IN :STRING_ONE, stringTwo. I know I've seen this somewhere but can't find it on google.










      share|improve this question














      I need to query for an object based on 2 string variables. The first one is a constant but the second one gets passed to the class constructor.



      So in the end I want to achieve something like this:



      public class MyClass 
      private final String STRING_ONE = 'STRING ONE';

      public MyClass(String stringTwo)
      List<Object__c> objects = [
      SELECT Id
      FROM Object__c
      WHERE Name IN :STRING_ONE, stringTwo
      ];




      This is the part that I can't get the syntax right of WHERE Name IN :STRING_ONE, stringTwo. I know I've seen this somewhere but can't find it on google.







      soql list where






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 37 mins ago









      ArthleteArthlete

      976717




      976717




















          2 Answers
          2






          active

          oldest

          votes


















          2














          It's like normal SOQL, but you put the colons before each item in the list:



          public class MyClass 
          private final String STRING_ONE = 'STRING ONE';

          public MyClass(String stringTwo)
          List<Object__c> objects = [
          SELECT Id
          FROM Object__c
          WHERE Name IN (:STRING_ONE, :stringTwo)
          ];







          share|improve this answer























          • Thank you, that's what I was looking for!

            – Arthlete
            26 mins ago






          • 1





            @Arthlete You're welcome! I know it's pretty unusual syntax, so glad you asked so people could find the answer to this.

            – sfdcfox
            21 mins ago


















          3














          You can supply string variable values using Apex binding. When you're not using Dynamic SOQL, as you're not here, you can even use complex Apex expressions in the bind. The following options are all legit.



          ... WHERE Name IN (:STRING_ONE, :stringTwo)

          ... WHERE Name IN :new List<String>STRING_ONE, stringTwo

          ... WHERE Name = :STRING_ONE OR Name = :stringTwo

          List<String> names = new List<String>STRING_ONE, stringTwo;
          [SELECT ... FROM Account WHERE Name IN :names]


          Dynamic SOQL doesn't allow complex bind expressions, so creating new Lists and similar are verboten in that context.






          share|improve this answer






















            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "459"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f254106%2fsoql-populate-a-literal-list-in-where-in-clause%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            2














            It's like normal SOQL, but you put the colons before each item in the list:



            public class MyClass 
            private final String STRING_ONE = 'STRING ONE';

            public MyClass(String stringTwo)
            List<Object__c> objects = [
            SELECT Id
            FROM Object__c
            WHERE Name IN (:STRING_ONE, :stringTwo)
            ];







            share|improve this answer























            • Thank you, that's what I was looking for!

              – Arthlete
              26 mins ago






            • 1





              @Arthlete You're welcome! I know it's pretty unusual syntax, so glad you asked so people could find the answer to this.

              – sfdcfox
              21 mins ago















            2














            It's like normal SOQL, but you put the colons before each item in the list:



            public class MyClass 
            private final String STRING_ONE = 'STRING ONE';

            public MyClass(String stringTwo)
            List<Object__c> objects = [
            SELECT Id
            FROM Object__c
            WHERE Name IN (:STRING_ONE, :stringTwo)
            ];







            share|improve this answer























            • Thank you, that's what I was looking for!

              – Arthlete
              26 mins ago






            • 1





              @Arthlete You're welcome! I know it's pretty unusual syntax, so glad you asked so people could find the answer to this.

              – sfdcfox
              21 mins ago













            2












            2








            2







            It's like normal SOQL, but you put the colons before each item in the list:



            public class MyClass 
            private final String STRING_ONE = 'STRING ONE';

            public MyClass(String stringTwo)
            List<Object__c> objects = [
            SELECT Id
            FROM Object__c
            WHERE Name IN (:STRING_ONE, :stringTwo)
            ];







            share|improve this answer













            It's like normal SOQL, but you put the colons before each item in the list:



            public class MyClass 
            private final String STRING_ONE = 'STRING ONE';

            public MyClass(String stringTwo)
            List<Object__c> objects = [
            SELECT Id
            FROM Object__c
            WHERE Name IN (:STRING_ONE, :stringTwo)
            ];








            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered 27 mins ago









            sfdcfoxsfdcfox

            259k12204447




            259k12204447












            • Thank you, that's what I was looking for!

              – Arthlete
              26 mins ago






            • 1





              @Arthlete You're welcome! I know it's pretty unusual syntax, so glad you asked so people could find the answer to this.

              – sfdcfox
              21 mins ago

















            • Thank you, that's what I was looking for!

              – Arthlete
              26 mins ago






            • 1





              @Arthlete You're welcome! I know it's pretty unusual syntax, so glad you asked so people could find the answer to this.

              – sfdcfox
              21 mins ago
















            Thank you, that's what I was looking for!

            – Arthlete
            26 mins ago





            Thank you, that's what I was looking for!

            – Arthlete
            26 mins ago




            1




            1





            @Arthlete You're welcome! I know it's pretty unusual syntax, so glad you asked so people could find the answer to this.

            – sfdcfox
            21 mins ago





            @Arthlete You're welcome! I know it's pretty unusual syntax, so glad you asked so people could find the answer to this.

            – sfdcfox
            21 mins ago













            3














            You can supply string variable values using Apex binding. When you're not using Dynamic SOQL, as you're not here, you can even use complex Apex expressions in the bind. The following options are all legit.



            ... WHERE Name IN (:STRING_ONE, :stringTwo)

            ... WHERE Name IN :new List<String>STRING_ONE, stringTwo

            ... WHERE Name = :STRING_ONE OR Name = :stringTwo

            List<String> names = new List<String>STRING_ONE, stringTwo;
            [SELECT ... FROM Account WHERE Name IN :names]


            Dynamic SOQL doesn't allow complex bind expressions, so creating new Lists and similar are verboten in that context.






            share|improve this answer



























              3














              You can supply string variable values using Apex binding. When you're not using Dynamic SOQL, as you're not here, you can even use complex Apex expressions in the bind. The following options are all legit.



              ... WHERE Name IN (:STRING_ONE, :stringTwo)

              ... WHERE Name IN :new List<String>STRING_ONE, stringTwo

              ... WHERE Name = :STRING_ONE OR Name = :stringTwo

              List<String> names = new List<String>STRING_ONE, stringTwo;
              [SELECT ... FROM Account WHERE Name IN :names]


              Dynamic SOQL doesn't allow complex bind expressions, so creating new Lists and similar are verboten in that context.






              share|improve this answer

























                3












                3








                3







                You can supply string variable values using Apex binding. When you're not using Dynamic SOQL, as you're not here, you can even use complex Apex expressions in the bind. The following options are all legit.



                ... WHERE Name IN (:STRING_ONE, :stringTwo)

                ... WHERE Name IN :new List<String>STRING_ONE, stringTwo

                ... WHERE Name = :STRING_ONE OR Name = :stringTwo

                List<String> names = new List<String>STRING_ONE, stringTwo;
                [SELECT ... FROM Account WHERE Name IN :names]


                Dynamic SOQL doesn't allow complex bind expressions, so creating new Lists and similar are verboten in that context.






                share|improve this answer













                You can supply string variable values using Apex binding. When you're not using Dynamic SOQL, as you're not here, you can even use complex Apex expressions in the bind. The following options are all legit.



                ... WHERE Name IN (:STRING_ONE, :stringTwo)

                ... WHERE Name IN :new List<String>STRING_ONE, stringTwo

                ... WHERE Name = :STRING_ONE OR Name = :stringTwo

                List<String> names = new List<String>STRING_ONE, stringTwo;
                [SELECT ... FROM Account WHERE Name IN :names]


                Dynamic SOQL doesn't allow complex bind expressions, so creating new Lists and similar are verboten in that context.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 24 mins ago









                David ReedDavid Reed

                37.3k82255




                37.3k82255



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Salesforce Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f254106%2fsoql-populate-a-literal-list-in-where-in-clause%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    बाताम इन्हें भी देखें सन्दर्भ दिक्चालन सूची1°05′00″N 104°02′0″E / 1.08333°N 104.03333°E / 1.08333; 104.033331°05′00″N 104°02′0″E / 1.08333°N 104.03333°E / 1.08333; 104.03333

                    Why is the 'in' operator throwing an error with a string literal instead of logging false?Why can't I use switch statement on a String?Python join: why is it string.join(list) instead of list.join(string)?Multiline String Literal in C#Why does comparing strings using either '==' or 'is' sometimes produce a different result?How to initialize an array's length in javascript?How can I print literal curly-brace characters in python string and also use .format on it?Why does ++[[]][+[]]+[+[]] return the string “10”?Why is char[] preferred over String for passwords?Why does this code using random strings print “hello world”?jQuery.inArray(), how to use it right?

                    How can we generalize the fact of finite dimensional vector space to an infinte dimensional case?$k[x]$-module and cyclic module over a finite dimensional vector spaceSubspace of a finite dimensional space is finite dimensionalIf V is an infinite-dimensional vector space, and S is an infinite-dimensional subspace of V, must the dimension of V/S be finite? ExplainWhy is an infinite dimensional space so different than a finite dimensional one?base for finite dimensional vector space is not infinite dimensional vector space?Any finite-dimensional vector space is the dual space of anotherHaving Trouble Understanding Meaning Of A Finite-Dimensional Vector SpaceProve that “Every subspaces of a finite-dimensional vector space is finite-dimensional”Ring as a finite dimensional Vector space over a field KQuestion regarding basis and dimension