find_by_ids

Function find_by_ids 

Source
pub async fn find_by_ids<'e, 'c: 'e, DB, M, I, E>(
    executor: E,
    ids: I,
) -> Result<Vec<M>>
where DB: Database + DatabaseInfo, for<'a> DB::Arguments<'a>: IntoArguments<'a, DB>, M: Model + for<'r> FromRow<'r, DB::Row> + Send + Unpin, I: IntoIterator + Send, I::Item: for<'q> Encode<'q, DB> + Type<DB> + Send + Sync + Clone, E: Executor<'c, Database = DB> + Send,
Expand description

根据多个 ID 查找记录(泛型版本)

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

§类型参数

  • DB - 数据库类型(如 sqlx::MySql, sqlx::Postgres, sqlx::Sqlite
  • M - 模型类型,必须实现 Model trait 和对应数据库的 FromRow
  • I - ID 集合类型,可以是 Vec<T> 或其他实现了 IntoIterator 的类型
  • E - 执行器类型,可以是连接池或事务

§参数

  • executor - 数据库执行器(连接池或事务)
  • ids - 主键 ID 集合

§返回值

返回找到的所有记录,如果没有找到任何记录,返回空向量

§示例

use sqlxplus::{DatabaseInfo, crud};

// MySQL
let users = crud::find_by_ids::<sqlx::MySql, User, _, _>(pool, vec![1, 2, 3]).await?;

// PostgreSQL
let users = crud::find_by_ids::<sqlx::Postgres, User, _, _>(pool, vec![1, 2, 3]).await?;

// SQLite
let users = crud::find_by_ids::<sqlx::Sqlite, User, _, _>(pool, vec![1, 2, 3]).await?;