ドキュメントには、
let users = sql_query("SELECT * FROM users WHERE id > ? AND name <> ?") .bind::<Integer, _>(1) .bind::<Text, _>("Tess") .get_results(&connection);
diesel::query_builder::SqlQuery - Rust
とあるけど、MySQLとPostgreSQLでプレースホルダー指定子が違うので注意(^_^;)
diesel/sql_query.rs at master · diesel-rs/diesel · GitHub
こちらのコメントにある通り、PostgreSQLには$1, $2, ...
のように指定する。
use diesel::{RunQueryDsl, result::Error, sql_query, sql_types::Text}; pub fn fetch_team_by_account_id(conn: &DBConnection, account_id: &String) -> Result<Vec<Post>, Error> { sql_query( "select * from post where title = $1 ") .bind::<Text, _>(&title).get_results(conn.get()) }