pub struct Sql {
pub raw_value: String,
pub bind_indexs: Vec<usize>,
pub bind_values: Vec<Value>,
}Fields§
§raw_value: String§bind_indexs: Vec<usize>§bind_values: Vec<Value>Implementations§
source§impl Sql
impl Sql
pub fn new<T: ToString>(value: T) -> Self
pub fn push_str<T: AsRef<str>>(&mut self, raw_str: T) -> &mut Self
pub fn push_strs<T: AsRef<str>>( &mut self, raw_strs: Vec<T>, separated_str: &str ) -> &mut Self
pub fn push_bind<V: Into<Value>>(&mut self, bind_value: V) -> &mut Self
pub fn push_binds<V: Into<Value>>( &mut self, bind_values: Vec<V>, separated_str: &str ) -> &mut Self
pub fn push_str_with_bind<T: AsRef<str>, V: Into<Value>>( &mut self, raw_str: T, bind_value: V ) -> &mut Self
pub fn push_sql(&mut self, sql: Sql) -> &mut Self
pub fn push_sqls(&mut self, sqls: Vec<Sql>, separated_str: &str) -> &mut Self
pub fn to_sql_string(&self) -> Result<String>
source§impl Sql
impl Sql
sourcepub fn range_sql<K: AsRef<str>, V: ToString, R: RangeBounds<V>>(
key: K,
range: R
) -> Option<Sql>
pub fn range_sql<K: AsRef<str>, V: ToString, R: RangeBounds<V>>( key: K, range: R ) -> Option<Sql>
Examples
let sql = arel::Sql::range_sql("age", ..18).unwrap();
assert_eq!(sql.to_sql_string().unwrap(), r#"age < 18"#);
let sql = arel::Sql::range_sql("age", ..=18).unwrap();
assert_eq!(sql.to_sql_string().unwrap(), r#"age <= 18"#);
let sql = arel::Sql::range_sql("age", 18..20).unwrap();
assert_eq!(sql.to_sql_string().unwrap(), r#"age >= 18 AND age < 20"#);
let sql = arel::Sql::range_sql("age", 18..=20).unwrap();
assert_eq!(sql.to_sql_string().unwrap(), r#"age BETWEEN 18 AND 20"#);
let sql = arel::Sql::range_sql("age", (std::ops::Bound::Excluded(18), std::ops::Bound::Included(20))).unwrap();
assert_eq!(sql.to_sql_string().unwrap(), r#"age > 18 AND age <= 20"#);
let sql = arel::Sql::range_sql("age", 18..).unwrap();
assert_eq!(sql.to_sql_string().unwrap(), r#"age >= 18"#);
source§impl Sql
impl Sql
pub async fn exec<'a, E>(&self, executor: E) -> Result<DatabaseQueryResult>where
E: Executor<'a, Database = Database>,
pub async fn fetch_one_with_exec<'a, E>(
&self,
executor: E
) -> Result<DatabaseRow>where
E: Executor<'a, Database = Database>,
pub async fn fetch_one_as_with_exec<'a, T, E>(&self, executor: E) -> Result<T>
pub async fn fetch_one_optional_as_with_exec<'a, T, E>( &self, executor: E ) -> Result<Option<T>>
Trait Implementations§
source§impl<'a> TryFrom<&Sql> for QueryBuilder<'a>
impl<'a> TryFrom<&Sql> for QueryBuilder<'a>
source§impl<'a> TryFrom<Sql> for QueryBuilder<'a>
impl<'a> TryFrom<Sql> for QueryBuilder<'a>
Auto Trait Implementations§
impl RefUnwindSafe for Sql
impl Send for Sql
impl Sync for Sql
impl Unpin for Sql
impl UnwindSafe for Sql
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more