前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >HarmonyOSNext 端云一体化(4)

HarmonyOSNext 端云一体化(4)

作者头像
万少
修改2025-02-10 17:36:35
修改2025-02-10 17:36:35
2100
代码可运行
举报
运行总次数:0
代码可运行

HarmonyOSNext 端云一体化(4)

在上一章节我们讲了数据库数据表的一些基本操作。如query、upsert、delete和calculateQuery。这一章节主要来讲解各种查询条件操作。如 查询班级年龄大于30的同学等。

查询条件解释

谓词,用来代替或者展示其客体性质、特征或者客体之间关系的词项

这些查询条件在端云一体中解释中叫做谓词。云数据库中提供丰富的谓词查询来构建查询条件。根据谓词查询方法构造自己的

DatabaseQuery对象。

查询条件谓词一览

关键字

说明

equalTo

表示等于的条件判断,用于查询中筛选出与指定值相等的数据

notEqualTo

表示不等于的条件判断,筛选出与指定值不相等的数据

beginsWith

表示以某个值开头,用于查询开头匹配特定字符串的数据

endsWith

表示以某个值结尾,用于查询结尾匹配特定字符串的数据

contains

表示包含某个值,用于查询包含特定字符串的数据

greaterThan

表示大于,用于数值类型数据的比较,筛选出大于指定值的数据

greaterThanOrEqualTo

表示大于或等于,筛选出大于或等于指定值的数据

lessThan

表示小于,用于数值类型数据的比较,筛选出小于指定值的数据

lessThanOrEqualTo

表示小于或等于,筛选出小于或等于指定值的数据

in

用于判断某个值是否在指定的集合内,常用于查询符合多个值中某一个的数据

isNull

用于判断某个字段是否为空值

isNotNull

用于判断某个字段是否不为空值

orderByAsc

按升序排列,用于对查询结果按照指定字段进行从小到大的排序

orderByDesc

按降序排列,用于对查询结果按照指定字段进行从大到小的排序

limit

限制查询结果返回的数量

beginGroup

开始一个逻辑分组,用于将多个条件组合在一起作为一个逻辑单元

endGroup

结束一个逻辑分组

or

逻辑或,用于连接多个条件,只要其中一个条件满足则整个逻辑表达式为真

and

逻辑与,用于连接多个条件,只有所有条件都满足时整个逻辑表达式才为真

谓词使用示例

equalTo 查询id为20的数据
代码语言:javascript
代码运行次数:0
复制
this.condition.equalTo("id", 20) 
notEqualTo 查询id不等于20的数据
代码语言:javascript
代码运行次数:0
复制
this.condition.notEqualTo("id", 20) 
beginsWith 查询name字段以b开头的数据
代码语言:javascript
代码运行次数:0
复制
this.condition.beginsWith("name", "b") 
endsWith 查询name字段以k结尾的数据
代码语言:javascript
代码运行次数:0
复制
this.condition.endsWith("name", "k") 
contains 查询name字段包含k的数据
代码语言:javascript
代码运行次数:0
复制
this.condition.contains("name", "k") 
greaterThan 查询price字段大于30的数据
代码语言:javascript
代码运行次数:0
复制
this.condition.greaterThan("price", 30) 
greaterThanOrEqualTo 查询price字段大于或者等于30的数据
代码语言:javascript
代码运行次数:0
复制
this.condition.greaterThanOrEqualTo("price", 30) 
lessThan 查询price字段小于30的数据
代码语言:javascript
代码运行次数:0
复制
this.condition.lessThan("price", 30) 
lessThanOrEqualTo 查询price字段小于或者等于30的数据
代码语言:javascript
代码运行次数:0
复制
this.condition.lessThanOrEqualTo("price", 30) 
in 查询name字段包含在["book","aaaa","bbbb"]的中数据
代码语言:javascript
代码运行次数:0
复制
this.condition.in("name", ["book", "aaaa", "bbbb"]) 
isNull 查询name字段是否为null
代码语言:javascript
代码运行次数:0
复制
this.condition.isNull("name") 
isNotNull 查询name字段是否非null
代码语言:javascript
代码运行次数:0
复制
this.condition.isNotNull("name") 
orderByAsc 根据id,进行升序
代码语言:javascript
代码运行次数:0
复制
this.condition.orderByAsc("id") 
orderByDesc 根据id,进行降序
代码语言:javascript
代码运行次数:0
复制
this.condition.orderByDesc("id") 
limit 查询2条数据,从第1条开始
代码语言:javascript
代码运行次数:0
复制
this.condition.limit(2, 1) 
or 逻辑或,查询name=book 或者 price>30的数据
代码语言:javascript
代码运行次数:0
复制
this.condition.equalTo("name", "book").or().greaterThan('price', 30) 
and 逻辑与,查询name=book123 并且 price>30的数据
代码语言:javascript
代码运行次数:0
复制
this.condition.equalTo("name", "book123").and().greaterThan('price', 30) 
beginGroup 和 endGroup 表示一对逻辑分组
代码语言:javascript
代码运行次数:0
复制
 // 条件1:   name=book并且price>30

  // 条件2:   id=20或者price>30

  // 需求: 查询 条件1 和 条件2 同时满足的数据
  this.condition
    .beginGroup()
    .equalTo('name', 30)
    .and()
    .greaterThan('price', 30)
    .endGroup()
    .and()
    .beginGroup()
    .equalTo('id', 20)
    .or()
    .greaterThan('price', 30)
    .endGroup();

加强

上面的谓词,也是根据实际语义搭配一起使用。比如:查询name=book的前2条数据

总结

本章主要介绍了HarmonyOSNext端云一体化中的数据库查询条件操作:

  1. 介绍了查询条件中的谓词概念,它用于展示或描述数据的性质、特征或关系
  2. 详细列举了常用的查询谓词,包括:
    • 比较类:equalTo、notEqualTo、greaterThan、lessThan等
    • 字符串匹配:beginsWith、endsWith、contains
    • 空值判断:isNull、isNotNull
    • 集合操作:in
    • 排序限制:orderByAsc、orderByDesc、limit
    • 逻辑组合:and、or、beginGroup、endGroup
  3. 通过具体示例展示了各种谓词的使用方法,包括基本查询和复杂的组合查询
  4. 说明了谓词可以根据实际需求灵活组合使用,以实现更复杂的查询功能
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HarmonyOSNext 端云一体化(4)
    • 查询条件解释
    • 查询条件谓词一览
    • 谓词使用示例
      • equalTo 查询id为20的数据
      • notEqualTo 查询id不等于20的数据
      • beginsWith 查询name字段以b开头的数据
      • endsWith 查询name字段以k结尾的数据
      • contains 查询name字段包含k的数据
      • greaterThan 查询price字段大于30的数据
      • greaterThanOrEqualTo 查询price字段大于或者等于30的数据
      • lessThan 查询price字段小于30的数据
      • lessThanOrEqualTo 查询price字段小于或者等于30的数据
      • in 查询name字段包含在["book","aaaa","bbbb"]的中数据
      • isNull 查询name字段是否为null
      • isNotNull 查询name字段是否非null
      • orderByAsc 根据id,进行升序
      • orderByDesc 根据id,进行降序
      • limit 查询2条数据,从第1条开始
      • or 逻辑或,查询name=book 或者 price>30的数据
      • and 逻辑与,查询name=book123 并且 price>30的数据
      • beginGroup 和 endGroup 表示一对逻辑分组
    • 加强
    • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档