count

Function count 

Source
pub async fn count<'e, 'c: 'e, DB, M, E>(
    executor: E,
    builder: QueryBuilder,
) -> Result<u64>
where DB: Database + DatabaseInfo, for<'a> DB::Arguments<'a>: IntoArguments<'a, DB>, M: Model, E: Executor<'c, Database = DB> + Send, String: Type<DB> + for<'b> Encode<'b, DB>, i64: Type<DB> + for<'b> Encode<'b, DB> + for<'r> Decode<'r, DB>, i32: Type<DB> + for<'b> Encode<'b, DB>, i16: Type<DB> + for<'b> Encode<'b, DB>, f64: Type<DB> + for<'b> Encode<'b, DB>, f32: Type<DB> + for<'b> Encode<'b, DB>, bool: Type<DB> + for<'b> Encode<'b, DB>, Option<String>: Type<DB> + for<'b> Encode<'b, DB>, usize: ColumnIndex<DB::Row>,
Expand description

统计记录数量(泛型版本)

这是统一的泛型实现,支持所有实现了 DatabaseInfo 的数据库类型。

§类型参数

  • DB - 数据库类型(如 sqlx::MySql, sqlx::Postgres, sqlx::Sqlite
  • M - 模型类型,必须实现 Model trait
  • E - 执行器类型,可以是连接池或事务

§参数

  • executor - 数据库执行器(连接池或事务)
  • builder - 查询构建器

§返回值

返回符合条件的记录数量

§示例

use sqlxplus::{DatabaseInfo, crud, QueryBuilder};

// MySQL
let builder = QueryBuilder::new("SELECT * FROM user");
let count = crud::count::<sqlx::MySql, User, _>(pool, builder).await?;

// PostgreSQL
let builder = QueryBuilder::new("SELECT * FROM \"user\"");
let count = crud::count::<sqlx::Postgres, User, _>(pool, builder).await?;

// SQLite
let builder = QueryBuilder::new("SELECT * FROM user");
let count = crud::count::<sqlx::Sqlite, User, _>(pool, builder).await?;