Function get_by_query

Source
pub fn get_by_query<T: FromRow>(
    client: &mut Client,
    query: &str,
    params: &[&(dyn ToSql + Sync)],
) -> Result<Vec<T>, Error>
Expand description

§get_by_query

Retrieves multiple records from the database using a custom SQL query.

§Parameters

  • client: Database connection client
  • query: Custom SQL query string
  • params: Array of query parameters

§Return Value

  • Result<Vec<T>, Error>: On success, returns the list of found records; on failure, returns Error

§Example Usage

use postgres::{Client, NoTls, Error};
use parsql::postgres::get_by_query;
 
#[derive(FromRow, Debug)]
pub struct UserStats {
    pub state: i16,
    pub user_count: i64,
}

fn main() -> Result<(), Error> {
    let mut client = Client::connect(
        "host=localhost user=postgres dbname=test",
        NoTls,
    )?;

    let query = "SELECT state, COUNT(*) as user_count FROM users GROUP BY state HAVING COUNT(*) > $1";
    let min_count = 5;
     
    let stats = get_by_query::<UserStats>(&mut client, query, &[&min_count])?;
    println!("User stats: {:?}", stats);
    Ok(())
}