pgcount

Macro pgcount 

Source
macro_rules! pgcount {
    ($t:expr, {
        $(j0: [$jk0:tt, $jm0:tt, $jv0:expr],)?
        $(j1: [$jk1:tt, $jm1:tt, $jv1:expr],)?
        $(j2: [$jk2:tt, $jm2:tt, $jv2:expr],)?
        $(j3: [$jk3:tt, $jm3:tt, $jv3:expr],)?
        $(p0: [$k0:tt, $m0:tt, $v0:expr],)?
        $(p1: [$k1:tt, $m1:tt, $v1:expr],)?
        $(p2: [$k2:tt, $m2:tt, $v2:expr],)?
        $(p3: [$k3:tt, $m3:tt, $v3:expr],)?
        $(p4: [$k4:tt, $m4:tt, $v4:expr],)?
        $(p5: [$k5:tt, $m5:tt, $v5:expr],)?
        $(p6: [$k6:tt, $m6:tt, $v6:expr],)?
        $(p7: [$k7:tt, $m7:tt, $v7:expr],)?
        $(p8: [$k8:tt, $m8:tt, $v8:expr],)?
        $(p9: [$k9:tt, $m9:tt, $v9:expr],)?
        $(r: $r:expr,)?
        $(distinct: $distinct:expr,)?
    }) => { ... };
}
Expand description

计数 ,返回 sql 语句,参数同 find 类似。

j*: 为 join 操作,【“字段1”, “方法”, “字段2”】 方法有:inner、left、right

p*: 为查寻操作,【“字段”, “方法”, “参数”】 方法有:>、<、=、!=、<=、>=、like、in、not_in、is_null

r: 为p的组合条件(必填),如:p0p1 && (p0 || p2)

use pgsql_quick::{pgcount, pg_run_vec, PostgresQuick, PostgresQuickCount};

let sql = pgcount!("for_test", {
    p0: ["total", ">", 0],
    r: "p0",
});
let res_count: Vec<PostgresQuickCount> = pg_run_vec(&mut client, sql).unwrap();


// 其他用法
let sql = pgcount!("for_test", {
    p0: ["total", ">", 0],
    r: "p0",
    distinct: "title",
});