Enum sea_query::expr::SimpleExpr [−][src]
Expression used in query, including all supported expression variants.
SimpleExpr
represent various kinds of expression can be used in query.
Two SimpleExpr
can be chain together with method defined below, such as logical AND,
logical OR, arithmetic ADD ...etc. Please reference below for more details.
Variants
Unary(UnOper, Box<SimpleExpr>)
FunctionCall(Function, Vec<SimpleExpr>)
Binary(Box<SimpleExpr>, BinOper, Box<SimpleExpr>)
SubQuery(Box<SelectStatement>)
Value(Value)
Custom(String)
Implementations
impl SimpleExpr
[src]
pub fn and(self, right: SimpleExpr) -> Self
[src]
Express a logical and expression.
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::select() .columns(vec![Char::Character, Char::SizeW, Char::SizeH]) .from(Char::Table) .or_where(Expr::col(Char::SizeW).eq(1).and(Expr::col(Char::SizeH).eq(2))) .or_where(Expr::col(Char::SizeW).eq(3).and(Expr::col(Char::SizeH).eq(4))) .to_owned(); assert_eq!( query.to_string(MysqlQueryBuilder), r#"SELECT `character`, `size_w`, `size_h` FROM `character` WHERE ((`size_w` = 1) AND (`size_h` = 2)) OR ((`size_w` = 3) AND (`size_h` = 4))"# ); assert_eq!( query.to_string(PostgresQueryBuilder), r#"SELECT "character", "size_w", "size_h" FROM "character" WHERE (("size_w" = 1) AND ("size_h" = 2)) OR (("size_w" = 3) AND ("size_h" = 4))"# ); assert_eq!( query.to_string(SqliteQueryBuilder), r#"SELECT `character`, `size_w`, `size_h` FROM `character` WHERE ((`size_w` = 1) AND (`size_h` = 2)) OR ((`size_w` = 3) AND (`size_h` = 4))"# );
pub fn or(self, right: SimpleExpr) -> Self
[src]
Express a logical or expression.
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::select() .columns(vec![Char::Character, Char::SizeW, Char::SizeH]) .from(Char::Table) .and_where(Expr::col(Char::SizeW).eq(1).or(Expr::col(Char::SizeH).eq(2))) .and_where(Expr::col(Char::SizeW).eq(3).or(Expr::col(Char::SizeH).eq(4))) .to_owned(); assert_eq!( query.to_string(MysqlQueryBuilder), r#"SELECT `character`, `size_w`, `size_h` FROM `character` WHERE ((`size_w` = 1) OR (`size_h` = 2)) AND ((`size_w` = 3) OR (`size_h` = 4))"# ); assert_eq!( query.to_string(PostgresQueryBuilder), r#"SELECT "character", "size_w", "size_h" FROM "character" WHERE (("size_w" = 1) OR ("size_h" = 2)) AND (("size_w" = 3) OR ("size_h" = 4))"# ); assert_eq!( query.to_string(SqliteQueryBuilder), r#"SELECT `character`, `size_w`, `size_h` FROM `character` WHERE ((`size_w` = 1) OR (`size_h` = 2)) AND ((`size_w` = 3) OR (`size_h` = 4))"# );
pub fn equals(self, right: SimpleExpr) -> Self
[src]
Express a logical equal expression.
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::select() .columns(vec![Char::Character, Char::SizeW, Char::SizeH]) .from(Char::Table) .and_where(Expr::col(Char::SizeW).max().equals(Expr::col(Char::SizeH).max())) .to_owned(); assert_eq!( query.to_string(MysqlQueryBuilder), r#"SELECT `character`, `size_w`, `size_h` FROM `character` WHERE MAX(`size_w`) = MAX(`size_h`)"# ); assert_eq!( query.to_string(PostgresQueryBuilder), r#"SELECT "character", "size_w", "size_h" FROM "character" WHERE MAX("size_w") = MAX("size_h")"# ); assert_eq!( query.to_string(SqliteQueryBuilder), r#"SELECT `character`, `size_w`, `size_h` FROM `character` WHERE MAX(`size_w`) = MAX(`size_h`)"# );
pub fn not_equals(self, right: SimpleExpr) -> Self
[src]
Express a logical not equal expression.
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::select() .columns(vec![Char::Character, Char::SizeW, Char::SizeH]) .from(Char::Table) .and_where(Expr::col(Char::SizeW).max().not_equals(Expr::col(Char::SizeH).max())) .to_owned(); assert_eq!( query.to_string(MysqlQueryBuilder), r#"SELECT `character`, `size_w`, `size_h` FROM `character` WHERE MAX(`size_w`) <> MAX(`size_h`)"# ); assert_eq!( query.to_string(PostgresQueryBuilder), r#"SELECT "character", "size_w", "size_h" FROM "character" WHERE MAX("size_w") <> MAX("size_h")"# ); assert_eq!( query.to_string(SqliteQueryBuilder), r#"SELECT `character`, `size_w`, `size_h` FROM `character` WHERE MAX(`size_w`) <> MAX(`size_h`)"# );
pub fn add(self, right: SimpleExpr) -> Self
[src]
Express a arithmetic addition expression.
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::select() .columns(vec![Char::Character, Char::SizeW, Char::SizeH]) .from(Char::Table) .and_where(Expr::col(Char::SizeW).max().add(Expr::col(Char::SizeH).max())) .to_owned(); assert_eq!( query.to_string(MysqlQueryBuilder), r#"SELECT `character`, `size_w`, `size_h` FROM `character` WHERE MAX(`size_w`) + MAX(`size_h`)"# ); assert_eq!( query.to_string(PostgresQueryBuilder), r#"SELECT "character", "size_w", "size_h" FROM "character" WHERE MAX("size_w") + MAX("size_h")"# ); assert_eq!( query.to_string(SqliteQueryBuilder), r#"SELECT `character`, `size_w`, `size_h` FROM `character` WHERE MAX(`size_w`) + MAX(`size_h`)"# );
pub fn sub(self, right: SimpleExpr) -> Self
[src]
Express a arithmetic subtraction expression.
Examples
use sea_query::{*, tests_cfg::*}; let query = Query::select() .columns(vec![Char::Character, Char::SizeW, Char::SizeH]) .from(Char::Table) .and_where(Expr::col(Char::SizeW).max().sub(Expr::col(Char::SizeH).max())) .to_owned(); assert_eq!( query.to_string(MysqlQueryBuilder), r#"SELECT `character`, `size_w`, `size_h` FROM `character` WHERE MAX(`size_w`) - MAX(`size_h`)"# ); assert_eq!( query.to_string(PostgresQueryBuilder), r#"SELECT "character", "size_w", "size_h" FROM "character" WHERE MAX("size_w") - MAX("size_h")"# ); assert_eq!( query.to_string(SqliteQueryBuilder), r#"SELECT `character`, `size_w`, `size_h` FROM `character` WHERE MAX(`size_w`) - MAX(`size_h`)"# );
Trait Implementations
impl Clone for SimpleExpr
[src]
fn clone(&self) -> SimpleExpr
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Into<SelectExpr> for SimpleExpr
[src]
fn into(self) -> SelectExpr
[src]
impl Into<SimpleExpr> for Expr
[src]
fn into(self) -> SimpleExpr
[src]
Auto Trait Implementations
impl !RefUnwindSafe for SimpleExpr
[src]
impl !Send for SimpleExpr
[src]
impl !Sync for SimpleExpr
[src]
impl Unpin for SimpleExpr
[src]
impl !UnwindSafe for SimpleExpr
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,