#query-builder

joker_query

The joker_query is most sugared query builder of Rust

3 releases (1 stable)

1.0.0 Dec 7, 2023
0.1.1 Nov 17, 2023
0.1.0 Nov 17, 2023

#41 in #query-builder

Apache-2.0

165KB
1.5K SLoC

joker_query

joker_query

The joker_query is most sugared query builder of Rust, with joker_query can implement most complex queries with sugar syntax

Features

− (Operator) - fully implemented ( Select, Insert, Update, Delete ) query operations

− (SubQuery) - can use subquery for operators ( IN, EXISTs, <, >, <= >=, Any ) also can use sub-query for data source for example select * from (...)

Example

NewVersion from 1.0.0

Select

    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();

Examples

  • See the complete examples here.

Benchmark

  • almost all complex queries run under 5us

Crates

joker_query = "1.0.0"

No runtime deps