• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Class (RdbPredicates)
2<!--Kit: ArkData-->
3<!--Subsystem: DistributedDataManager-->
4<!--Owner: @baijidong-->
5<!--Designer: @widecode; @htt1997-->
6<!--Tester: @yippo; @logic42-->
7<!--Adviser: @ge-yafang-->
8
9> **说明:**
10>
11> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
12
13表示关系型数据库(RDB)的谓词。该类确定RDB中条件表达式的值是true还是false。谓词间支持多语句拼接,拼接时默认使用and()连接。不支持Sendable跨线程传递。
14
15## 导入模块
16
17```ts
18import { relationalStore } from '@kit.ArkData';
19```
20
21## constructor
22
23constructor(name: string)
24
25构造函数。
26
27**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
28
29**参数:**
30
31| 参数名 | 类型   | 必填 | 说明         |
32| ------ | ------ | ---- | ------------ |
33| name   | string | 是   | 数据库表名。 |
34
35**错误码:**
36
37以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
38
39| **错误码ID** | **错误信息**                                                                                                       |
40| --------- |----------------------------------------------------------------------------------------------------------------|
41| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
42
43**示例:**
44
45```ts
46let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
47```
48
49## inDevices
50
51inDevices(devices: Array&lt;string&gt;): RdbPredicates
52
53同步分布式数据库时连接到组网内指定的远程设备。
54
55> **说明:**
56>
57> 其中devices通过调用[deviceManager.getAvailableDeviceListSync](../apis-distributedservice-kit/js-apis-distributedDeviceManager.md#getavailabledevicelistsync)方法得到。
58数据库同步时调用Sync接口,需要在入参谓词中调用inDevices接口选择设备。如果不调用inDevices接口即默认连接组网内所有的设备。
59
60**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
61
62**参数:**
63
64| 参数名  | 类型                | 必填 | 说明                       |
65| ------- | ------------------- | ---- | -------------------------- |
66| devices | Array&lt;string&gt; | 是   | 指定的组网内的远程设备ID。 |
67
68**返回值**:
69
70| 类型                                 | 说明                       |
71| ------------------------------------ | -------------------------- |
72| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
73
74**错误码:**
75
76以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
77
78| **错误码ID** | **错误信息**                                                                                                       |
79| --------- |----------------------------------------------------------------------------------------------------------------|
80| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
81
82**示例:**
83
84```ts
85import { distributedDeviceManager } from '@kit.DistributedServiceKit';
86import { BusinessError } from '@kit.BasicServicesKit';
87
88let dmInstance: distributedDeviceManager.DeviceManager;
89let deviceIds: Array<string> = [];
90
91try {
92  dmInstance = distributedDeviceManager.createDeviceManager("com.example.appdatamgrverify");
93  let devices: Array<distributedDeviceManager.DeviceBasicInfo> = dmInstance.getAvailableDeviceListSync();
94  for (let i = 0; i < devices.length; i++) {
95    deviceIds[i] = devices[i].networkId!;
96  }
97} catch (err) {
98  let code = (err as BusinessError).code;
99  let message = (err as BusinessError).message;
100  console.error("createDeviceManager errCode:" + code + ",errMessage:" + message);
101}
102
103let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
104predicates.inDevices(deviceIds);
105```
106
107## inAllDevices
108
109inAllDevices(): RdbPredicates
110
111同步分布式数据库时连接到组网内所有的远程设备。
112
113
114**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
115
116**返回值**:
117
118| 类型                                 | 说明                       |
119| ------------------------------------ | -------------------------- |
120| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
121
122**示例:**
123
124```ts
125let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
126predicates.inAllDevices();
127```
128
129## equalTo
130
131equalTo(field: string, value: ValueType): RdbPredicates
132
133配置谓词以匹配数据表的field列中值为value的字段。
134
135**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
136
137**参数:**
138
139| 参数名 | 类型                    | 必填 | 说明                   |
140| ------ | ----------------------- | ---- | ---------------------- |
141| field  | string                  | 是   | 数据库表中的列名。     |
142| value  | [ValueType](arkts-apis-data-relationalStore-t.md#valuetype) | 是   | 指示要与谓词匹配的值。 |
143
144**返回值**:
145
146| 类型                                 | 说明                       |
147| ------------------------------------ | -------------------------- |
148| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
149
150**错误码:**
151
152以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
153
154| **错误码ID** | **错误信息**                                                                                                       |
155| --------- |----------------------------------------------------------------------------------------------------------------|
156| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
157
158**示例:**
159
160```ts
161// 匹配数据表的"NAME"列中值为"Lisa"的字段
162let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
163predicates.equalTo("NAME", "Lisa");
164```
165
166
167## notEqualTo
168
169notEqualTo(field: string, value: ValueType): RdbPredicates
170
171配置谓词以匹配数据表的field列中值不为value的字段。
172
173**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
174
175**参数:**
176
177| 参数名 | 类型                    | 必填 | 说明                   |
178| ------ | ----------------------- | ---- | ---------------------- |
179| field  | string                  | 是   | 数据库表中的列名。     |
180| value  | [ValueType](arkts-apis-data-relationalStore-t.md#valuetype) | 是   | 指示要与谓词匹配的值。 |
181
182**返回值**:
183
184| 类型                                 | 说明                       |
185| ------------------------------------ | -------------------------- |
186| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
187
188**错误码:**
189
190以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
191
192| **错误码ID** | **错误信息**                                                                                                       |
193| --------- |----------------------------------------------------------------------------------------------------------------|
194| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
195
196**示例:**
197
198```ts
199// 匹配数据表的"NAME"列中值不为"Lisa"的字段
200let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
201predicates.notEqualTo("NAME", "Lisa");
202```
203
204
205## beginWrap
206
207beginWrap(): RdbPredicates
208
209向谓词添加左括号。
210
211**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
212
213**返回值**:
214
215| 类型                                 | 说明                      |
216| ------------------------------------ | ------------------------- |
217| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回带有左括号的Rdb谓词。 |
218
219**示例:**
220
221```ts
222let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
223predicates.equalTo("NAME", "Lisa")
224  .beginWrap()
225  .equalTo("AGE", 18)
226  .or()
227  .equalTo("SALARY", 200.5)
228  .endWrap();
229```
230
231## endWrap
232
233endWrap(): RdbPredicates
234
235向谓词添加右括号。
236
237**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
238
239**返回值**:
240
241| 类型                                 | 说明                      |
242| ------------------------------------ | ------------------------- |
243| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回带有右括号的Rdb谓词。 |
244
245**示例:**
246
247```ts
248let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
249predicates.equalTo("NAME", "Lisa")
250  .beginWrap()
251  .equalTo("AGE", 18)
252  .or()
253  .equalTo("SALARY", 200.5)
254  .endWrap();
255```
256
257## or
258
259or(): RdbPredicates
260
261将或条件添加到谓词中。
262
263**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
264
265**返回值**:
266
267| 类型                                 | 说明                      |
268| ------------------------------------ | ------------------------- |
269| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回带有或条件的Rdb谓词。 |
270
271**示例:**
272
273```ts
274// 匹配数据表的"NAME"列中值为"Lisa"或"Rose"的字段
275let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
276predicates.equalTo("NAME", "Lisa")
277  .or()
278  .equalTo("NAME", "Rose");
279```
280
281## and
282
283and(): RdbPredicates
284
285向谓词添加和条件。
286
287**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
288
289**返回值**:
290
291| 类型                                 | 说明                      |
292| ------------------------------------ | ------------------------- |
293| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回带有和条件的Rdb谓词。 |
294
295**示例:**
296
297```ts
298// 匹配数据表的"NAME"列中值为"Lisa"且"SALARY"列中值为"200.5"的字段
299let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
300predicates.equalTo("NAME", "Lisa")
301  .and()
302  .equalTo("SALARY", 200.5);
303```
304
305## contains
306
307contains(field: string, value: string): RdbPredicates
308
309配置谓词以匹配数据表的field列中包含value的字段。
310
311**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
312
313**参数:**
314
315| 参数名 | 类型   | 必填 | 说明                   |
316| ------ | ------ | ---- | ---------------------- |
317| field  | string | 是   | 数据库表中的列名。     |
318| value  | string | 是   | 指示要与谓词匹配的值。 |
319
320**返回值**:
321
322| 类型                                 | 说明                       |
323| ------------------------------------ | -------------------------- |
324| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
325
326**错误码:**
327
328以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
329
330| **错误码ID** | **错误信息**                                                                                                       |
331| --------- |----------------------------------------------------------------------------------------------------------------|
332| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
333
334**示例:**
335
336```ts
337// 匹配数据表的"NAME"列中包含"os"的字段,如"Rose"
338let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
339predicates.contains("NAME", "os");
340```
341
342## beginsWith
343
344beginsWith(field: string, value: string): RdbPredicates
345
346配置谓词以匹配数据表的field列中以value开头的字段。
347
348**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
349
350**参数:**
351
352| 参数名 | 类型   | 必填 | 说明                   |
353| ------ | ------ | ---- | ---------------------- |
354| field  | string | 是   | 数据库表中的列名。     |
355| value  | string | 是   | 指示要与谓词匹配的值。 |
356
357**返回值**:
358
359| 类型                                 | 说明                       |
360| ------------------------------------ | -------------------------- |
361| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
362
363**错误码:**
364
365以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
366
367| **错误码ID** | **错误信息**                                                                                                       |
368| --------- |----------------------------------------------------------------------------------------------------------------|
369| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
370
371**示例:**
372
373```ts
374// 匹配数据表的"NAME"列中以"Li"开头的字段,如"Lisa"
375let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
376predicates.beginsWith("NAME", "Li");
377```
378
379## endsWith
380
381endsWith(field: string, value: string): RdbPredicates
382
383配置谓词以匹配数据表的field列中以value结尾的字段。
384
385**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
386
387**参数:**
388
389| 参数名 | 类型   | 必填 | 说明                   |
390| ------ | ------ | ---- | ---------------------- |
391| field  | string | 是   | 数据库表中的列名。     |
392| value  | string | 是   | 指示要与谓词匹配的值。 |
393
394**返回值**:
395
396| 类型                                 | 说明                       |
397| ------------------------------------ | -------------------------- |
398| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
399
400**错误码:**
401
402以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
403
404| **错误码ID** | **错误信息**                                                                                                       |
405| --------- |----------------------------------------------------------------------------------------------------------------|
406| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
407
408**示例:**
409
410```ts
411// 匹配数据表的"NAME"列中以"se"结尾的字段,如"Rose"
412let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
413predicates.endsWith("NAME", "se");
414```
415
416## isNull
417
418isNull(field: string): RdbPredicates
419
420配置谓词以匹配数据表的field列中值为null的字段。
421
422**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
423
424**参数:**
425
426| 参数名 | 类型   | 必填 | 说明               |
427| ------ | ------ | ---- | ------------------ |
428| field  | string | 是   | 数据库表中的列名。 |
429
430**返回值**:
431
432| 类型                                 | 说明                       |
433| ------------------------------------ | -------------------------- |
434| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
435
436**错误码:**
437
438以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
439
440| **错误码ID** | **错误信息**                                                                                                       |
441| --------- |----------------------------------------------------------------------------------------------------------------|
442| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
443
444**示例**:
445
446```ts
447let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
448predicates.isNull("NAME");
449```
450
451## isNotNull
452
453isNotNull(field: string): RdbPredicates
454
455配置谓词以匹配数据表的field列中值不为null的字段。
456
457**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
458
459**参数:**
460
461| 参数名 | 类型   | 必填 | 说明               |
462| ------ | ------ | ---- | ------------------ |
463| field  | string | 是   | 数据库表中的列名。 |
464
465**返回值**:
466
467| 类型                                 | 说明                       |
468| ------------------------------------ | -------------------------- |
469| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
470
471**错误码:**
472
473以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
474
475| **错误码ID** | **错误信息**                                                                                                       |
476| --------- |----------------------------------------------------------------------------------------------------------------|
477| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
478
479**示例:**
480
481```ts
482let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
483predicates.isNotNull("NAME");
484```
485
486## like
487
488like(field: string, value: string): RdbPredicates
489
490配置谓词以匹配数据表的field列中值类似于value的字段。
491
492**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
493
494**参数:**
495
496| 参数名 | 类型   | 必填 | 说明                   |
497| ------ | ------ | ---- | ---------------------- |
498| field  | string | 是   | 数据库表中的列名。     |
499| value  | string | 是   | 指示要与谓词匹配的值。 |
500
501**返回值**:
502
503| 类型                                 | 说明                       |
504| ------------------------------------ | -------------------------- |
505| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
506
507**错误码:**
508
509以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
510
511| **错误码ID** | **错误信息**                                                                                                       |
512| --------- |----------------------------------------------------------------------------------------------------------------|
513| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
514
515**示例:**
516
517```ts
518// 匹配数据表的"NAME"列中值类似于"os"的字段,如"Rose"
519let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
520predicates.like("NAME", "%os%");
521```
522
523## glob
524
525glob(field: string, value: string): RdbPredicates
526
527配置谓词匹配数据字段为string的指定字段。
528
529**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
530
531**参数:**
532
533| 参数名 | 类型   | 必填 | 说明                                                         |
534| ------ | ------ | ---- | ------------------------------------------------------------ |
535| field  | string | 是   | 数据库表中的列名。                                           |
536| value  | string | 是   | 指示要与谓词匹配的值。<br>支持通配符,*表示0个、1个或多个数字或字符,?表示1个数字或字符。 |
537
538**返回值**:
539
540| 类型                                 | 说明                       |
541| ------------------------------------ | -------------------------- |
542| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
543
544**错误码:**
545
546以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
547
548| **错误码ID** | **错误信息**                                                                                                       |
549| --------- |----------------------------------------------------------------------------------------------------------------|
550| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
551
552**示例:**
553
554```ts
555// 匹配数据表的"NAME"列中类型为string且值为"?h*g"的字段
556let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
557predicates.glob("NAME", "?h*g");
558```
559
560## between
561
562between(field: string, low: ValueType, high: ValueType): RdbPredicates
563
564配置谓词以匹配数据表的field列中值在给定范围内的字段(包含范围边界)。
565
566**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
567
568**参数:**
569
570| 参数名 | 类型                    | 必填 | 说明                       |
571| ------ | ----------------------- | ---- | -------------------------- |
572| field  | string                  | 是   | 数据库表中的列名。         |
573| low    | [ValueType](arkts-apis-data-relationalStore-t.md#valuetype) | 是   | 指示与谓词匹配的最小值。   |
574| high   | [ValueType](arkts-apis-data-relationalStore-t.md#valuetype) | 是   | 指示与谓词匹配的最大值。 |
575
576**返回值**:
577
578| 类型                                 | 说明                       |
579| ------------------------------------ | -------------------------- |
580| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
581
582**错误码:**
583
584以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
585
586| **错误码ID** | **错误信息**                                                                                                       |
587| --------- |----------------------------------------------------------------------------------------------------------------|
588| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
589
590**示例:**
591
592```ts
593// 匹配数据表的"AGE"列中大于等于10且小于等于50的值
594let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
595predicates.between("AGE", 10, 50);
596```
597
598## notBetween
599
600notBetween(field: string, low: ValueType, high: ValueType): RdbPredicates
601
602配置谓词以匹配数据表的field列中值超出给定范围的字段(不包含范围边界)。
603
604**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
605
606**参数:**
607
608| 参数名 | 类型                    | 必填 | 说明                       |
609| ------ | ----------------------- | ---- | -------------------------- |
610| field  | string                  | 是   | 数据库表中的列名。         |
611| low    | [ValueType](arkts-apis-data-relationalStore-t.md#valuetype) | 是   | 指示与谓词匹配的最小值。   |
612| high   | [ValueType](arkts-apis-data-relationalStore-t.md#valuetype) | 是   | 指示要与谓词匹配的最大值。 |
613
614**返回值**:
615
616| 类型                                 | 说明                       |
617| ------------------------------------ | -------------------------- |
618| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
619
620**错误码:**
621
622以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
623
624| **错误码ID** | **错误信息**                                                                                                       |
625| --------- |----------------------------------------------------------------------------------------------------------------|
626| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
627
628**示例:**
629
630```ts
631// 匹配数据表的"AGE"列中小于10或大于50的值
632let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
633predicates.notBetween("AGE", 10, 50);
634```
635
636## greaterThan
637
638greaterThan(field: string, value: ValueType): RdbPredicates
639
640配置谓词以匹配数据表的field列中值大于value的字段。
641
642**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
643
644**参数:**
645
646| 参数名 | 类型                    | 必填 | 说明                   |
647| ------ | ----------------------- | ---- | ---------------------- |
648| field  | string                  | 是   | 数据库表中的列名。     |
649| value  | [ValueType](arkts-apis-data-relationalStore-t.md#valuetype) | 是   | 指示要与谓词匹配的值。 |
650
651**返回值**:
652
653| 类型                                 | 说明                       |
654| ------------------------------------ | -------------------------- |
655| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
656
657**错误码:**
658
659以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
660
661| **错误码ID** | **错误信息**                                                                                                       |
662| --------- |----------------------------------------------------------------------------------------------------------------|
663| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
664
665**示例:**
666
667```ts
668// 匹配数据表的"AGE"列中大于18的值
669let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
670predicates.greaterThan("AGE", 18);
671```
672
673## lessThan
674
675lessThan(field: string, value: ValueType): RdbPredicates
676
677配置谓词以匹配数据表的field列中值小于value的字段。
678
679**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
680
681**参数:**
682
683| 参数名 | 类型                    | 必填 | 说明                   |
684| ------ | ----------------------- | ---- | ---------------------- |
685| field  | string                  | 是   | 数据库表中的列名。     |
686| value  | [ValueType](arkts-apis-data-relationalStore-t.md#valuetype) | 是   | 指示要与谓词匹配的值。 |
687
688**返回值**:
689
690| 类型                                 | 说明                       |
691| ------------------------------------ | -------------------------- |
692| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
693
694**错误码:**
695
696以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
697
698| **错误码ID** | **错误信息**                                                                                                       |
699| --------- |----------------------------------------------------------------------------------------------------------------|
700| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
701
702**示例:**
703
704```ts
705// 匹配数据表的"AGE"列中小于20的值
706let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
707predicates.lessThan("AGE", 20);
708```
709
710## greaterThanOrEqualTo
711
712greaterThanOrEqualTo(field: string, value: ValueType): RdbPredicates
713
714配置谓词以匹配数据表的field列中值大于或者等于value的字段。
715
716**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
717
718**参数:**
719
720| 参数名 | 类型                    | 必填 | 说明                   |
721| ------ | ----------------------- | ---- | ---------------------- |
722| field  | string                  | 是   | 数据库表中的列名。     |
723| value  | [ValueType](arkts-apis-data-relationalStore-t.md#valuetype) | 是   | 指示要与谓词匹配的值。 |
724
725**返回值**:
726
727| 类型                                 | 说明                       |
728| ------------------------------------ | -------------------------- |
729| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
730
731**错误码:**
732
733以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
734
735| **错误码ID** | **错误信息**                                                                                                       |
736| --------- |----------------------------------------------------------------------------------------------------------------|
737| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
738
739**示例:**
740
741```ts
742// 匹配数据表的"AGE"列中大于等于18的值
743let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
744predicates.greaterThanOrEqualTo("AGE", 18);
745```
746
747## lessThanOrEqualTo
748
749lessThanOrEqualTo(field: string, value: ValueType): RdbPredicates
750
751配置谓词以匹配数据表的field列中值小于或者等于value的字段。
752
753**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
754
755**参数:**
756
757| 参数名 | 类型                    | 必填 | 说明                   |
758| ------ | ----------------------- | ---- | ---------------------- |
759| field  | string                  | 是   | 数据库表中的列名。     |
760| value  | [ValueType](arkts-apis-data-relationalStore-t.md#valuetype) | 是   | 指示要与谓词匹配的值。 |
761
762**返回值**:
763
764| 类型                                 | 说明                       |
765| ------------------------------------ | -------------------------- |
766| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
767
768**错误码:**
769
770以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
771
772| **错误码ID** | **错误信息**                                                                                                       |
773| --------- |----------------------------------------------------------------------------------------------------------------|
774| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
775
776**示例:**
777
778```ts
779// 匹配数据表的"AGE"列中小于等于20的值
780let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
781predicates.lessThanOrEqualTo("AGE", 20);
782```
783
784## orderByAsc
785
786orderByAsc(field: string): RdbPredicates
787
788配置谓词以匹配数据表的field列中值按升序排序的列。
789
790**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
791
792**参数:**
793
794| 参数名 | 类型   | 必填 | 说明               |
795| ------ | ------ | ---- | ------------------ |
796| field  | string | 是   | 数据库表中的列名。 |
797
798**返回值**:
799
800| 类型                                 | 说明                       |
801| ------------------------------------ | -------------------------- |
802| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
803
804**错误码:**
805
806以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
807
808| **错误码ID** | **错误信息**                                                                                                       |
809| --------- |----------------------------------------------------------------------------------------------------------------|
810| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
811
812**示例:**
813
814```ts
815let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
816predicates.orderByAsc("NAME");
817```
818
819## orderByDesc
820
821orderByDesc(field: string): RdbPredicates
822
823配置谓词以匹配数据表的field列中值按降序排序的列。
824
825**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
826
827**参数:**
828
829| 参数名 | 类型   | 必填 | 说明               |
830| ------ | ------ | ---- | ------------------ |
831| field  | string | 是   | 数据库表中的列名。 |
832
833**返回值**:
834
835| 类型                                 | 说明                       |
836| ------------------------------------ | -------------------------- |
837| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
838
839**错误码:**
840
841以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
842
843| **错误码ID** | **错误信息**                                                                                                       |
844| --------- |----------------------------------------------------------------------------------------------------------------|
845| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
846
847**示例:**
848
849```ts
850let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
851predicates.orderByDesc("AGE");
852```
853
854## distinct
855
856distinct(): RdbPredicates
857
858配置谓词以过滤重复记录并仅保留其中一个。
859
860**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
861
862**返回值**:
863
864| 类型                                 | 说明                           |
865| ------------------------------------ | ------------------------------ |
866| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回可用于过滤重复记录的谓词。 |
867
868**示例:**
869
870```ts
871let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
872predicates.equalTo("NAME", "Rose").distinct(); // 对NAME列值为Rose的结果集去重
873```
874
875## limitAs
876
877limitAs(value: number): RdbPredicates
878
879设置谓词的最大数据记录数量。
880
881**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
882
883**参数:**
884
885| 参数名 | 类型   | 必填 | 说明             |
886| ------ | ------ | ---- | ---------------- |
887| value  | number | 是   | 最大数据记录数,取值应为正整数,传入值小于等于0时,不会限制记录数量。 |
888
889**返回值**:
890
891| 类型                                 | 说明                                 |
892| ------------------------------------ | ------------------------------------ |
893| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回可用于设置最大数据记录数的谓词。 |
894
895**错误码:**
896
897以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
898
899| **错误码ID** | **错误信息**               |
900| --------- |--------------------------|
901| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
902
903**示例:**
904
905```ts
906let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
907predicates.equalTo("NAME", "Rose").limitAs(3);
908```
909
910## offsetAs
911
912offsetAs(rowOffset: number): RdbPredicates
913
914设置谓词查询结果返回的起始位置。需要同步调用limitAs接口指定查询数量,否则将无查询结果。如需查询指定偏移位置后的所有行,limitAs接口入参需小于等于0。
915
916**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
917
918**参数:**
919
920| 参数名    | 类型   | 必填 | 说明                               |
921| --------- | ------ | ---- | ---------------------------------- |
922| rowOffset | number | 是   | 指定查询结果的起始位置,默认初始位置为结果集的最前端。当rowOffset为负数时,起始位置为结果集的最前端。当rowOffset超出结果集最后位置时,查询结果为空。 |
923
924**返回值**:
925
926| 类型                                 | 说明                                 |
927| ------------------------------------ | ------------------------------------ |
928| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回具有指定返回结果起始位置的谓词。 |
929
930**错误码:**
931
932以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
933
934| **错误码ID** | **错误信息**                                                                                                       |
935| --------- |----------------------------------------------------------------------------------------------------------------|
936| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
937
938**示例:**
939
940```ts
941let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
942predicates.equalTo("NAME", "Rose").limitAs(-1).offsetAs(3);
943```
944
945## groupBy
946
947groupBy(fields: Array&lt;string&gt;): RdbPredicates
948
949配置谓词按指定列分组查询结果。
950
951**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
952
953**参数:**
954
955| 参数名 | 类型                | 必填 | 说明                 |
956| ------ | ------------------- | ---- | -------------------- |
957| fields | Array&lt;string&gt; | 是   | 指定分组依赖的列名。 |
958
959**返回值**:
960
961| 类型                                 | 说明                   |
962| ------------------------------------ | ---------------------- |
963| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回分组查询列的谓词。 |
964
965**错误码:**
966
967以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
968
969| **错误码ID** | **错误信息**                                                                                                       |
970| --------- |----------------------------------------------------------------------------------------------------------------|
971| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
972
973**示例:**
974
975```ts
976let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
977predicates.groupBy(["AGE", "NAME"]);
978```
979
980## indexedBy
981
982indexedBy(field: string): RdbPredicates
983
984配置谓词以指定索引列。
985
986**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
987
988**参数:**
989
990| 参数名 | 类型   | 必填 | 说明           |
991| ------ | ------ | ---- | -------------- |
992| field  | string | 是   | 索引列的名称。 |
993
994**返回值**:
995
996| 类型                                 | 说明                                  |
997| ------------------------------------ | ------------------------------------- |
998| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回具有指定索引列的RdbPredicates。 |
999
1000**错误码:**
1001
1002以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1003
1004| **错误码ID** | **错误信息**                                                                                                       |
1005| --------- |----------------------------------------------------------------------------------------------------------------|
1006| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1007
1008**示例:**
1009
1010```ts
1011let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
1012predicates.indexedBy("SALARY");
1013```
1014
1015## in
1016
1017in(field: string, value: Array&lt;ValueType&gt;): RdbPredicates
1018
1019配置谓词,使数据表中`field`列的值在给定范围内。若`value`为空数组,则查询时不对此列进行限定,查询全部数据。
1020
1021**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
1022
1023**参数:**
1024
1025| 参数名 | 类型                                 | 必填 | 说明                                    |
1026| ------ | ------------------------------------ | ---- | --------------------------------------- |
1027| field  | string                               | 是   | 数据库表中的列名。                      |
1028| value  | Array&lt;[ValueType](arkts-apis-data-relationalStore-t.md#valuetype)&gt; | 是   | 以ValueType型数组形式指定的要匹配的值。 |
1029
1030**返回值**:
1031
1032| 类型                                 | 说明                       |
1033| ------------------------------------ | -------------------------- |
1034| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
1035
1036**错误码:**
1037
1038以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1039
1040| **错误码ID** | **错误信息**                                                                                                       |
1041| --------- |----------------------------------------------------------------------------------------------------------------|
1042| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1043
1044**示例:**
1045
1046```ts
1047// 匹配数据表的"AGE"列中在[18,20]中的值
1048let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
1049predicates.in("AGE", [18, 20]);
1050```
1051
1052## notIn
1053
1054notIn(field: string, value: Array&lt;ValueType&gt;): RdbPredicates
1055
1056将谓词配置为匹配数据字段为ValueType且值超出给定范围的指定字段。
1057
1058**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
1059
1060**参数:**
1061
1062| 参数名 | 类型                                 | 必填 | 说明                                  |
1063| ------ | ------------------------------------ | ---- | ------------------------------------- |
1064| field  | string                               | 是   | 数据库表中的列名。                    |
1065| value  | Array&lt;[ValueType](arkts-apis-data-relationalStore-t.md#valuetype)&gt; | 是   | 以ValueType数组形式指定的要匹配的值。 |
1066
1067**返回值**:
1068
1069| 类型                                 | 说明                       |
1070| ------------------------------------ | -------------------------- |
1071| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
1072
1073**错误码:**
1074
1075以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1076
1077| **错误码ID** | **错误信息**                                                                                                       |
1078| --------- |----------------------------------------------------------------------------------------------------------------|
1079| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1080
1081**示例:**
1082
1083```ts
1084// 匹配数据表的"NAME"列中不在["Lisa", "Rose"]中的值
1085let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
1086predicates.notIn("NAME", ["Lisa", "Rose"]);
1087```
1088
1089## notContains<sup>12+</sup>
1090
1091notContains(field: string, value: string): RdbPredicates
1092
1093配置谓词以匹配数据表的field列中不包含value的字段。
1094
1095**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
1096
1097**参数:**
1098
1099| 参数名 | 类型   | 必填 | 说明                   |
1100| ------ | ------ | ---- | ---------------------- |
1101| field  | string | 是   | 数据库表中的列名。     |
1102| value  | string | 是   | 指示要与谓词匹配的值。 |
1103
1104**返回值**:
1105
1106| 类型                            | 说明                       |
1107| ------------------------------- | -------------------------- |
1108| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
1109
1110**错误码:**
1111
1112以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1113
1114| **错误码ID** | **错误信息**                                                                                                       |
1115| --------- |----------------------------------------------------------------------------------------------------------------|
1116| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1117
1118**示例:**
1119
1120```ts
1121// 匹配数据表的"NAME"列中不包含"os"的字段,如列表中的"Lisa"
1122let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
1123predicates.notContains("NAME", "os");
1124```
1125
1126## notLike<sup>12+</sup>
1127
1128notLike(field: string, value: string): RdbPredicates
1129
1130配置谓词以匹配数据表的field列中值不存在类似于value的字段。
1131
1132**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
1133
1134**参数:**
1135
1136| 参数名 | 类型   | 必填 | 说明                   |
1137| ------ | ------ | ---- | ---------------------- |
1138| field  | string | 是   | 数据库表中的列名。     |
1139| value  | string | 是   | 指示要与谓词匹配的值。 |
1140
1141**返回值**:
1142
1143| 类型                            | 说明                       |
1144| ------------------------------- | -------------------------- |
1145| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
1146
1147**错误码:**
1148
1149以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
1150
1151| **错误码ID** | **错误信息**                                                                                                       |
1152| --------- |----------------------------------------------------------------------------------------------------------------|
1153| 401       | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
1154
1155**示例:**
1156
1157```ts
1158// 匹配数据表的"NAME"列中不等于"os"的字段,如列表中的"Rose"
1159let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
1160predicates.notLike("NAME", "os");
1161```
1162
1163## having<sup>20+</sup>
1164
1165having(conditions:string, args?: Array\<ValueType>): RdbPredicates
1166
1167筛选符合条件的分组数据。
1168
1169**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core
1170
1171**参数:**
1172
1173| 参数名 | 类型   | 必填 | 说明                   |
1174| ------ | ------ | ---- | ---------------------- |
1175| conditions  | string | 是   | 用于过滤使用[groupBy](#groupby)获得的数据,不能为空且必须与[groupBy](#groupby)配合使用。
1176| args  | Array<[ValueType](arkts-apis-data-relationalStore-t.md#valuetype)> | 否   | 条件中使用的参数,用来替换条件语句中的占位符,不传时默认为空数组。 |
1177
1178**返回值**:
1179
1180| 类型                            | 说明                       |
1181| ------------------------------- | -------------------------- |
1182| [RdbPredicates](arkts-apis-data-relationalStore-RdbPredicates.md) | 返回与指定字段匹配的谓词。 |
1183
1184**错误码:**
1185
1186以下错误码的详细介绍请参见[关系型数据库错误码](errorcode-data-rdb.md)。
1187
1188| **错误码ID** | **错误信息**                                                                                                       |
1189| --------- |----------------------------------------------------------------------------------------------------------------|
1190| 14800001       | Invalid arguments. Possible causes: 1. Parameter is out of valid range; 2. Missing GROUP BY clause. |
1191
1192**示例1:**
1193
1194```ts
1195// 传递完整的条件
1196let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
1197predicates.groupBy(["AGE"]);
1198predicates.having("NAME = zhangsan");
1199```
1200**示例2:**
1201
1202```ts
1203// 条件中使用占位符替代,args参数传入替换占位符的值
1204let predicates = new relationalStore.RdbPredicates("EMPLOYEE");
1205predicates.groupBy(["AGE"]);
1206predicates.having("NAME = ?", ["zhangsan"]);
1207```