Activity › Forums › Salesforce® Discussions › What is the difference between SOQL and SOSL?
Tagged: Account, Contact, Integer, Lead, List, Salesforce Opportunity, Salesforce sObject, SOQL, SOSL
-
What is the difference between SOQL and SOSL?
Posted by Shubham on April 30, 2016 at 8:29 AMWhat is the difference between SOQL and SOSL? Can somebody explain with a simple example.
Avnish Yadav replied 7 years, 8 months ago 6 Members · 5 Replies -
5 Replies
-
Hi Shubham
Here is this:-
- SOQL Statements
SOQL statements evaluate to a list of sObjects, a single sObject, or an Integer for count method queries.
For example, you could retrieve a list of accounts that are named Acme:
List<Account> aa = [SELECT Id, Name FROM Account WHERE Name = ‘Acme’];
2. SOSL Statements
SOSL statements evaluate to a list of lists of sObjects, where each list contains the search results for a particular sObject type. The result lists are always returned in the same order as they were specified in the SOSL query. If a SOSL query does not return any records for a specified sObject type, the search results include an empty list for that sObject.For example, you can return a list of accounts, contacts, opportunities, and leads that begin with the phrase map:
List<List<SObject>> searchList = [FIND ‘map*’ IN ALL FIELDS RETURNING Account (Id, Name), Contact, Opportunity, Lead];
- SOQL Statements
- [adinserter block='9']
-
SOQL:
SOSL:
SOQL (Salesforce Object Query Language ) retrieves the records from the database by using “SELECT” keyword.
SOSL(Salesforce Object Search Language) retrieves the records from the database by using the “FIND” keyword.
By Using SOQL we can know in Which objects or fields the data resides.
By using SOSL, we don’t know in which object or field the data resides.
We can retrieve data from single object or from multiple objects that are related to each other.
We can retrieve multiple objects and field values efficiently when the objects may or may not be related to each other.
We can Query on only one table.
We can query on multiple tables. -
Here is the difference between SOQL and SOSL
SOQL –
Only one object at a time can be searched(Search in Single object)
Query all type of field
It can be used in classes n triggers
DML Operation can be performed on query results
SOQL use when we know in Which objects or fields the data resides.
We can retrieve data from single object or multiple objects that are related to each other.SOSL –
Many object can be searched at a time(Search in entire organization or Database)
Query on only email, text or phone
It can use in classes but not in trigger
DML Operation cannot be performed on search results
SOSL use when we don’t know in which object or field the data resides.
We can retrieve multiple objects and field values where the objects may or may not be related to each other.-
This reply was modified 7 years, 10 months ago by
William.
-
This reply was modified 7 years, 10 months ago by
-
SOQL:
1) SOQL (Salesforce Object Query Language ) retrieves the records from the database by using “SELECT” keyword.
2) By Using SOQL we can know in Which objects or fields the data resides.
3) We can retrieve data from single object or from multiple objects that are related to each other.
4) We can Query on only one table.SOSL:
1) SOSL(Salesforce Object Search Language) retrieves the records from the database by using the “FIND” keyword.
2) By using SOSL, we don’t know in which object or field the data resides.
3) We can retrieve multiple objects and field values efficiently when the objects may or may not be related to each other.
4) We can query on multiple tables.Thanks
-
Hello,
SOSL can search multiple object types, which requires multiple separate queries in SOQL, in addition, all the relevant fields are already text indexed for SOSL, but the same fields don’t have DB indexes, so SOQL queries against them will be slower. If you have a lot of data, these differences will be much more apparent.
Thanks.
Log In to reply.