导航:
1.先来看看SOSL
2.来看一下SOQL
先来看看SOSL
语法格式:find {要查询的文本内容} in searchgroup returning 对象(fields)
{要查询的文本内容}:这里一般为文本格式即可
searchgroup:这里有四种固定的类型
ALL FIELDS/EMAIL FIELDS/NAME FIELDS/PHONE FIELDS
fields:这里的字段用’,'隔开
来看一个实例:
find '百威' in all fields returning sku__c(name),channelprice__c(materialname__c)
看看查询结果:这里显示了关键字’百威’在两个对象里面所有的查询结果
小结:
- 这里的查找内容是类似于模糊查询
- 查询的内容的类型必须是文本类型
- 返回的结果集可以看作是两个List
应用上面的查询结果在代码里面演示一下用法:
下面的代码就是对结果的一个遍历输出
public class test_demo {
static void output(){
List<List<Object>> slist = [find '百威' in all fields returning sku__c(name),channelprice__c(materialname__c)];
List<sku__c> ulist = (List<sku__c>)slist[0];
List<channelprice__c> plist = (List<channelprice__c>)slist[1];
for(sku__c sku:ulist){
System.debug(sku.name);
}
for(channelprice__c channelprice:plist){
System.debug(channelprice.materialname__c);
}
}
}
来看一下SOQL
soql类似于sql语句:
1.关联查询 类似于join Account与Contact存在关联关系 在编写查询时可以直接引用
SELECT FirstName, LastName, Account.Name,Contact.name FROM Contact
2.like模糊查询,使用order by 进行排序 Null值显示在最前面
SELECT AccountId,Email,Id,LastName FROM Contact WHERE LastName LIKE '%国%' ORDER BY LastName ASC NULLS FIRST
3.SOQL也可以使用子查询的方式
select name from Account where Responsible__c in (select id from Responsible__c where id = 'a062v00001dFLMvAAO' )