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<string>): 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<string> | 是 | 指定的组网内的远程设备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<string>): RdbPredicates 948 949配置谓词按指定列分组查询结果。 950 951**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 952 953**参数:** 954 955| 参数名 | 类型 | 必填 | 说明 | 956| ------ | ------------------- | ---- | -------------------- | 957| fields | Array<string> | 是 | 指定分组依赖的列名。 | 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<ValueType>): RdbPredicates 1018 1019配置谓词,使数据表中`field`列的值在给定范围内。若`value`为空数组,则查询时不对此列进行限定,查询全部数据。 1020 1021**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1022 1023**参数:** 1024 1025| 参数名 | 类型 | 必填 | 说明 | 1026| ------ | ------------------------------------ | ---- | --------------------------------------- | 1027| field | string | 是 | 数据库表中的列名。 | 1028| value | Array<[ValueType](arkts-apis-data-relationalStore-t.md#valuetype)> | 是 | 以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<ValueType>): RdbPredicates 1055 1056将谓词配置为匹配数据字段为ValueType且值超出给定范围的指定字段。 1057 1058**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core 1059 1060**参数:** 1061 1062| 参数名 | 类型 | 必填 | 说明 | 1063| ------ | ------------------------------------ | ---- | ------------------------------------- | 1064| field | string | 是 | 数据库表中的列名。 | 1065| value | Array<[ValueType](arkts-apis-data-relationalStore-t.md#valuetype)> | 是 | 以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```