如何在rustqlite中使用SQLite SELECT COUNT(*)函数?

问题描述 投票:0回答:1

我正在使用

rusqlite
,目前在将
prepare
query
与 sql 查询结合使用时遇到问题
SELECT COUNT(*) FROM test_table

如何返回表中当前的行数?

我当前的代码如下所示:

let mut stmt = conn.prepare("SELECT COUNT(*) FROM test_table").unwrap();
let mut result = match stmt.query([]) {
    Ok(conn) => conn,
    Err(err)    => return Err(&err),
};

问题是如何相应地返回结果。

sqlite rust rusqlite
1个回答
0
投票

要使用

rusqlite
获取表中的当前行数,您可以使用
query_row
方法,这是从数据库获取单个结果的更简单、更直接的方法。以下是如何修改代码以从
test_table
检索行数:

use rusqlite::{Connection, Result};

fn get_row_count(conn: &Connection) -> Result<i64> {
    let mut stmt = conn.prepare("SELECT COUNT(*) FROM test_table")?;
    let count: i64 = stmt.query_row([], |row| row.get(0))?;
    Ok(count)
}

fn main() -> Result<()> {
    let conn = Connection::open("my_database.db")?;
    
    match get_row_count(&conn) {
        Ok(count) => println!("Number of rows in the table: {}", count),
        Err(err) => eprintln!("Error: {}", err),
    }
    
    Ok(())
}
© www.soinside.com 2019 - 2024. All rights reserved.