📅  最后修改于: 2023-12-03 15:22:46.807000             🧑  作者: Mango
在Apex中使用动态SOQL查询时,如果查询条件包含单引号,就需要对单引号进行转义。本文将介绍在动态SOQL中如何转义单引号。
在静态SOQL查询中,可以使用双引号将字符串括起来来转义单引号。
例如:
List<Account> accounts = [
SELECT Id, Name
FROM Account
WHERE Name = 'Acme\'s Account'
];
在上面的例子中,我们使用单引号括起了字符串Acme's Account
,并通过\
来转义单引号。这个查询将返回所有名称为Acme's Account
的帐户。
在动态SOQL查询中,我们需要使用Apex字符串函数String.escapeSingleQuotes()
来转义单引号。
例如:
String accountName = 'Acme\'s Account';
String query = 'SELECT Id, Name FROM Account WHERE Name = \'' + String.escapeSingleQuotes(accountName) + '\'';
List<Account> accounts = Database.query(query);
在上面的例子中,我们定义了一个包含单引号的查询条件,并在调用String.escapeSingleQuotes()
时使用了单引号来括起来,将Acme's Account
转义为Acme\\'s Account
。这个查询将返回所有名称为Acme's Account
的帐户。
在动态SOQL中转义单引号是很重要的,因为如果我们不这样做,我们将会遇到语法错误。使用String.escapeSingleQuotes()
函数是转义单引号的最佳实践,它可以确保我们的查询条件总是能够正确执行。