1# @ohos.data.dataSharePredicates (数据共享谓词) 2 3**谓词(DataSharePredicates)** 是开发者通过DataShare查询数据库中的数据所使用的筛选条件,经常被应用在更新数据、删除数据和查询数据中。 4 5谓词的接口函数与数据库的筛选条件一一对应,开发者在使用前需了解数据库相关知识。 6 7> **说明:** 8> 9> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 10> 11> - 本模块接口仅可在Stage模型下使用。 12 13 14 15## 导入模块 16 17```ts 18import { dataSharePredicates } from '@kit.ArkData'; 19``` 20 21## DataSharePredicates 22提供用于不同实现不同查询方法的数据共享谓词。该类型不是多线程安全的,如果应用中存在多线程同时操作该类派生出的实例,注意加锁保护。 23 24### equalTo<sup>10+</sup> 25 26equalTo(field: string, value: ValueType): DataSharePredicates 27 28该接口用于配置谓词以匹配值等于指定值的字段。 29 30目前仅RDB及KVDB(schema)支持该谓词。 31 32**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 33 34**参数:** 35 36| 参数名 | 类型 | 必填 | 说明 | 37| ------ | --------------------------------------------------- | ---- | ---------------------- | 38| field | string | 是 | 数据库表中的列名。 | 39| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | 是 | 指示要与谓词匹配的值。 | 40 41**返回值:** 42 43| 类型 | 说明 | 44| ------------------------------------------- | -------------------------- | 45| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 46 47**示例:** 48 49```ts 50let predicates = new dataSharePredicates.DataSharePredicates() 51predicates.equalTo("NAME", "Rose") 52``` 53 54 55### and<sup>10+</sup> 56 57and(): DataSharePredicates 58 59该接口用于将和条件添加到谓词中。 60 61目前仅RDB及KVDB(schema)支持该谓词。 62 63**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 64 65**返回值:** 66 67| 类型 | 说明 | 68| ------------------------------------------- | ---------------------- | 69| [DataSharePredicates](#datasharepredicates) | 返回带有和条件的谓词。 | 70 71**示例:** 72 73```ts 74let predicates = new dataSharePredicates.DataSharePredicates() 75predicates.equalTo("NAME", "lisi") 76 .and() 77 .equalTo("SALARY", 200.5) 78``` 79 80### orderByAsc<sup>10+</sup> 81 82orderByAsc(field: string): DataSharePredicates 83 84该接口用于配置谓词以匹配其值按升序排序的列。 85 86目前仅RDB及KVDB(schema)支持该谓词。 87 88**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 89 90**参数:** 91 92| 参数名 | 类型 | 必填 | 说明 | 93| ------ | ------ | ---- | ------------------ | 94| field | string | 是 | 数据库表中的列名。 | 95 96**返回值:** 97 98| 类型 | 说明 | 99| ------------------------------------------- | -------------------------- | 100| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 101 102**示例:** 103 104```ts 105let predicates = new dataSharePredicates.DataSharePredicates() 106predicates.orderByAsc("AGE") 107``` 108 109### orderByDesc<sup>10+</sup> 110 111orderByDesc(field: string): DataSharePredicates 112 113该接口用于配置谓词以匹配其值按降序排序的列。 114 115目前仅RDB及KVDB(schema)支持该谓词。 116 117**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 118 119**参数:** 120 121| 参数名 | 类型 | 必填 | 说明 | 122| ------ | ------ | ---- | ------------------ | 123| field | string | 是 | 数据库表中的列名。 | 124 125**返回值:** 126 127| 类型 | 说明 | 128| ------------------------------------------- | -------------------------- | 129| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 130 131**示例:** 132 133```ts 134let predicates = new dataSharePredicates.DataSharePredicates() 135predicates.orderByDesc("AGE") 136``` 137 138### limit<sup>10+</sup> 139 140limit(total: number, offset: number): DataSharePredicates 141 142该接口用于配置谓词以指定结果数和起始位置。 143 144目前仅RDB及KVDB(schema)支持该谓词。 145 146**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 147 148**参数:** 149 150| 参数名 | 类型 | 必填 | 说明 | 151| -------- | ------ | ---- | -------------- | 152| total | number | 是 | 指定结果数。 | 153| offset | number | 是 | 指示起始位置。 | 154 155**返回值:** 156 157| 类型 | 说明 | 158| ------------------------------------------- | -------------------------- | 159| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 160 161**示例:** 162 163```ts 164let predicates = new dataSharePredicates.DataSharePredicates() 165predicates.equalTo("NAME", "Rose").limit(10, 3) 166``` 167 168### in<sup>10+</sup> 169 170in(field: string, value: Array<ValueType>): DataSharePredicates 171 172该接口用于配置谓词以匹配值在指范围内的字段。 173 174目前仅RDB及KVDB(schema)支持该谓词。 175 176**系统能力:** SystemCapability.DistributedDataManager.DataShare.Core 177 178**参数:** 179 180| 参数名 | 类型 | 必填 | 说明 | 181| ------- | ---------------- | ---- | --------------------------------------- | 182| field | string | 是 | 数据库表中的列名。 | 183| value | Array<[ValueType](js-apis-data-valuesBucket.md#valuetype)> | 是 | 以ValueType型数组形式指定的要匹配的值。 | 184 185**返回值:** 186 187| 类型 | 说明 | 188| ------------------------------------------- | -------------------------- | 189| [DataSharePredicates](#datasharepredicates) | 返回与指定字段匹配的谓词。 | 190 191**示例:** 192 193```ts 194let predicates = new dataSharePredicates.DataSharePredicates() 195predicates.in("AGE", [18, 20]) 196```