#query-builder #mysql #postgresql #sqlite #sql #sql-query

joker_query

joker_query 是 Rust 最为糖化的查询构建器

3 个版本 (1 个稳定版)

1.0.0 2023年12月7日
0.1.1 2023年11月17日
0.1.0 2023年11月17日

#1194 in 数据库接口

Apache-2.0 协议

165KB
1.5K SLoC

joker_query

joker_query

joker_query 是 Rust 中最为糖化的查询构建器,使用 joker_query 可以通过糖化语法实现大多数复杂查询

功能

− (运算符) - 完全实现(选择、插入、更新、删除)查询操作

− (子查询) - 可以在运算符(IN、EXISTS、<、>、<=、>=)中使用子查询,也可以将子查询用作数据源,例如 select * from (...)

示例

1.0.0 版本

选择

    Select::
        cols(vec!["id", "age", "fullname"])
        .distinct()
        .from("customer")
        .inner_join("merchant").on("customer.id", "customer_id")
        .left_join("product").on("customer.id", "customer_id")
        .where_by("age", op::between(10, 25))
        .and("fullname", op::like("full%"))
        .or("fullname", op::not_in(vec!["danyal", "danyalmh", "danyalai"]))
        .group_by(vec!["merchant_id"])
        .having(&Func::count("id"), op::eq(2025))            
        .order_by("fullname")
        .order_by_desc("age")
        .limit(10)
        .offset(5)
        .build();

示例

  • 查看完整示例 这里

基准测试

  • 几乎所有复杂查询都在 5us 以下运行

Crates

joker_query = "1.0.0"

无运行时依赖