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的组合条件(必填),如:p0
、p1 && (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",
});