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 clientquery
: Custom SQL query stringparams
: 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(())
}