Trait diesel::prelude::SqliteExpressionMethods
source · pub trait SqliteExpressionMethods: Expression + Sized {
// Provided methods
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> { ... }
}
Available on crate feature
sqlite
only.Expand description
Sqlite specific methods which are present on all expressions.
Provided Methods§
sourcefn is<T>(self, other: T) -> Is<Self, T>where
Self::SqlType: SqlType,
T: AsExpression<Self::SqlType>,
fn is<T>(self, other: T) -> Is<Self, T>where Self::SqlType: SqlType, T: AsExpression<Self::SqlType>,
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);
sourcefn is_not<T>(self, other: T) -> IsNot<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>,
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);