Trait diesel::expression_methods::SqliteExpressionMethods[][src]

pub trait SqliteExpressionMethods: Expression + Sized {
    fn is<T>(self, other: T) -> Is<Self, T>
    where
        Self::SqlType: SqlType,
        T: AsExpression<Self::SqlType>
, { ... }
fn is_not<T>(self, other: T) -> IsNot<Self, T>
    where
        Self::SqlType: SqlType,
        T: AsExpression<Self::SqlType>
, { ... } }

Sqlite specific methods which are present on all expressions.

Provided methods

fn is<T>(self, other: T) -> Is<Self, T> where
    Self::SqlType: SqlType,
    T: AsExpression<Self::SqlType>, 
[src]

Creates a Sqlite IS expression.

The IS operator work like = except when one or both of the operands are NULL. In this case, if both operands are NULL, then the IS operator evaluates to true. If one operand is NULL and the other is not, then the IS operator evaluates to false. It is not possible for an IS expression to evaluate to NULL.

Example

let jack_is_a_dog = animals
    .select(name)
    .filter(species.is("dog"))
    .get_results::<Option<String>>(connection)?;
assert_eq!(vec![Some("Jack".to_string())], jack_is_a_dog);

fn is_not<T>(self, other: T) -> IsNot<Self, T> where
    Self::SqlType: SqlType,
    T: AsExpression<Self::SqlType>, 
[src]

Creates a Sqlite IS NOT expression.

The IS NOT operator work like != except when one or both of the operands are NULL. In this case, if both operands are NULL, then the IS NOT operator evaluates to false. If one operand is NULL and the other is not, then the IS NOT operator is true. It is not possible for an IS NOT expression to evaluate to NULL.

Example

let jack_is_not_a_spider = animals
    .select(name)
    .filter(species.is_not("spider"))
    .get_results::<Option<String>>(connection)?;
assert_eq!(vec![Some("Jack".to_string())], jack_is_not_a_spider);
Loading content...

Implementors

impl<T: Expression> SqliteExpressionMethods for T[src]

Loading content...