# @ohos.data.dataSharePredicates (DataShare Predicates)
**DataSharePredicates** provides a filter object to query data in a database by using **DataShare** APIs. It is often used to update, delete, and query data.
The APIs provided by **DataSharePredicates** correspond to the filter criteria of the database. Before using the APIs, you need to have basic database knowledge.
> **NOTE**
>
> - The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
>
> - The APIs of this module can be used only in the stage model.
## Modules to Import
```ts
import { dataSharePredicates } from '@kit.ArkData';
```
## DataSharePredicates
Provides APIs for setting different **DataSharePredicates** objects. This type is not multi-thread safe. If a **DataSharePredicates** instance is operated by multiple threads at the same time in an application, use a lock for it.
### equalTo10+
equalTo(field: string, value: ValueType): DataSharePredicates
Creates a **DataSharePredicates** object to search for the records in the specified column that are equal to the given value.
Currently, only the relational database (RDB) and key-value database (KVDB, schema) support this **DataSharePredicates** object.
**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | --------------------------------------------------- | ---- | ---------------------- |
| field | string | Yes | Column name in the database table. |
| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes | Value to match.|
**Return value**
| Type | Description |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
**Example**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.equalTo("NAME", "Rose")
```
### and10+
and(): DataSharePredicates
Creates a **DataSharePredicates** object to add the AND condition.
Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
**Return value**
| Type | Description |
| ------------------------------------------- | ---------------------- |
| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object with the AND condition.|
**Example**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.equalTo("NAME", "lisi")
.and()
.equalTo("SALARY", 200.5)
```
### orderByAsc10+
orderByAsc(field: string): DataSharePredicates
Creates a **DataSharePredicates** object that sorts records in ascending order.
Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | ------------------ |
| field | string | Yes | Column name in the database table.|
**Return value**
| Type | Description |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
**Example**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.orderByAsc("AGE")
```
### orderByDesc10+
orderByDesc(field: string): DataSharePredicates
Creates a **DataSharePredicates** object that sorts data in descending order.
Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
**Parameters**
| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | ------------------ |
| field | string | Yes | Column name in the database table.|
**Return value**
| Type | Description |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
**Example**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.orderByDesc("AGE")
```
### limit10+
limit(total: number, offset: number): DataSharePredicates
Creates a **DataSharePredicates** object to specify the number of records in the result and the start position.
Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | ------ | ---- | -------------- |
| total | number | Yes | Number of records. The value should be a positive integer. If a value less than or equal to **0** is specified, the number of records is not limited. |
| offset | number | Yes | Start position. The value should be a positive integer. If a value less than or equal to **0** is specified, the query result is returned from the first element.|
**Return value**
| Type | Description |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
**Example**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.equalTo("NAME", "Rose").limit(10, 3)
```
### in10+
in(field: string, value: Array<ValueType>): DataSharePredicates
Creates a **DataSharePredicates** object to search for the records in the specified column that are within the specified range.
Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** object.
**System capability**: SystemCapability.DistributedDataManager.DataShare.Core
**Parameters**
| Name | Type | Mandatory| Description |
| ------- | ---------------- | ---- | --------------------------------------- |
| field | string | Yes| Column name in the database table. |
| value | Array<[ValueType](js-apis-data-valuesBucket.md#valuetype)> | Yes | Array of the values to match.|
**Return value**
| Type | Description |
| ------------------------------------------- | -------------------------- |
| [DataSharePredicates](#datasharepredicates) | **DataSharePredicates** object created.|
**Example**
```ts
let predicates = new dataSharePredicates.DataSharePredicates()
predicates.in("AGE", [18, 20])
```