[−][src]Struct diesel::expression::SqlLiteral
Returned by the sql()
function.
Methods
impl<ST, T> SqlLiteral<ST, T>
[src]
pub fn bind<BindST, U>(
self,
bind_value: U
) -> UncheckedBind<Self, U::Expression> where
U: AsExpression<BindST>,
[src]
self,
bind_value: U
) -> UncheckedBind<Self, U::Expression> where
U: AsExpression<BindST>,
Bind a value for use with this SQL query.
Safety
This function should be used with care, as Diesel cannot validate that the value is of the right type nor can it validate that you have passed the correct number of parameters.
Examples
let seans_id = users .select(id) .filter(sql("name = ").bind::<Text, _>("Sean")) .get_result(&connection); assert_eq!(Ok(1), seans_id); let tess_id = sql::<Integer>("SELECT id FROM users WHERE name = ") .bind::<Text, _>("Tess") .get_result(&connection); assert_eq!(Ok(2), tess_id);
Multiple Bind Params
let query = users .select(name) .filter( sql("id > ") .bind::<Integer,_>(1) .sql(" AND name <> ") .bind::<Text, _>("Ryan") ) .get_results(&connection); let expected = vec!["Tess".to_string()]; assert_eq!(Ok(expected), query);
pub fn sql(self, sql: &str) -> SqlLiteral<ST, Self>
[src]
Use literal SQL in the query builder
This function is intended for use when you need a small bit of raw SQL in
your query. If you want to write the entire query using raw SQL, use
sql_query
instead.
Safety
This function should be used with care, as Diesel cannot validate that the value is of the right type nor can it validate that you have passed the correct number of parameters.
Examples
let query = users .select(name) .filter( sql("id > 1") .sql(" AND name <> 'Ryan'") ) .get_results(&connection); let expected = vec!["Tess".to_string()]; assert_eq!(Ok(expected), query);
Trait Implementations
impl<ST, T, __Rhs> Add<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
Self::SqlType: Add,
__Rhs: AsExpression<<Self::SqlType as Add>::Rhs>,
[src]
Self: Expression,
Self::SqlType: Add,
__Rhs: AsExpression<<Self::SqlType as Add>::Rhs>,
type Output = Add<Self, __Rhs::Expression>
The resulting type after applying the +
operator.
fn add(self, rhs: __Rhs) -> Self::Output
[src]
impl<QS, ST, T> AppearsOnTable<QS> for SqlLiteral<ST, T>
[src]
impl<ST: Clone, T: Clone> Clone for SqlLiteral<ST, T>
[src]
fn clone(&self) -> SqlLiteral<ST, T>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<ST: Debug, T: Debug> Debug for SqlLiteral<ST, T>
[src]
impl<ST, T, __Rhs> Div<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
Self::SqlType: Div,
__Rhs: AsExpression<<Self::SqlType as Div>::Rhs>,
[src]
Self: Expression,
Self::SqlType: Div,
__Rhs: AsExpression<<Self::SqlType as Div>::Rhs>,
type Output = Div<Self, __Rhs::Expression>
The resulting type after applying the /
operator.
fn div(self, rhs: __Rhs) -> Self::Output
[src]
impl<ST, T> Expression for SqlLiteral<ST, T>
[src]
type SqlType = ST
The type that this expression represents in SQL
impl<ST, T, __Rhs> Mul<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
Self::SqlType: Mul,
__Rhs: AsExpression<<Self::SqlType as Mul>::Rhs>,
[src]
Self: Expression,
Self::SqlType: Mul,
__Rhs: AsExpression<<Self::SqlType as Mul>::Rhs>,
type Output = Mul<Self, __Rhs::Expression>
The resulting type after applying the *
operator.
fn mul(self, rhs: __Rhs) -> Self::Output
[src]
impl<ST, T> NonAggregate for SqlLiteral<ST, T>
[src]
impl<ST, T> Query for SqlLiteral<ST, T>
[src]
impl<ST, T, DB> QueryFragment<DB> for SqlLiteral<ST, T> where
DB: Backend,
T: QueryFragment<DB>,
[src]
DB: Backend,
T: QueryFragment<DB>,
fn walk_ast(&self, out: AstPass<DB>) -> QueryResult<()>
[src]
fn to_sql(&self, out: &mut DB::QueryBuilder) -> QueryResult<()>
[src]
fn collect_binds(
&self,
out: &mut DB::BindCollector,
metadata_lookup: &DB::MetadataLookup
) -> QueryResult<()>
[src]
&self,
out: &mut DB::BindCollector,
metadata_lookup: &DB::MetadataLookup
) -> QueryResult<()>
fn is_safe_to_cache_prepared(&self) -> QueryResult<bool>
[src]
impl<ST, T> QueryId for SqlLiteral<ST, T>
[src]
type QueryId = ()
A type which uniquely represents Self
in a SQL query. Read more
const HAS_STATIC_QUERY_ID: bool
[src]
fn query_id() -> Option<TypeId>
[src]
impl<ST, T, Conn> RunQueryDsl<Conn> for SqlLiteral<ST, T>
[src]
fn execute(self, conn: &Conn) -> QueryResult<usize> where
Conn: Connection,
Self: ExecuteDsl<Conn>,
[src]
Conn: Connection,
Self: ExecuteDsl<Conn>,
fn load<U>(self, conn: &Conn) -> QueryResult<Vec<U>> where
Self: LoadQuery<Conn, U>,
[src]
Self: LoadQuery<Conn, U>,
fn get_result<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LoadQuery<Conn, U>,
[src]
Self: LoadQuery<Conn, U>,
fn get_results<U>(self, conn: &Conn) -> QueryResult<Vec<U>> where
Self: LoadQuery<Conn, U>,
[src]
Self: LoadQuery<Conn, U>,
fn first<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LimitDsl,
Limit<Self>: LoadQuery<Conn, U>,
[src]
Self: LimitDsl,
Limit<Self>: LoadQuery<Conn, U>,
impl<QS, ST, T> SelectableExpression<QS> for SqlLiteral<ST, T>
[src]
impl<ST, T, __Rhs> Sub<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
Self::SqlType: Sub,
__Rhs: AsExpression<<Self::SqlType as Sub>::Rhs>,
[src]
Self: Expression,
Self::SqlType: Sub,
__Rhs: AsExpression<<Self::SqlType as Sub>::Rhs>,
type Output = Sub<Self, __Rhs::Expression>
The resulting type after applying the -
operator.
fn sub(self, rhs: __Rhs) -> Self::Output
[src]
Auto Trait Implementations
impl<ST, T> RefUnwindSafe for SqlLiteral<ST, T> where
ST: RefUnwindSafe,
T: RefUnwindSafe,
ST: RefUnwindSafe,
T: RefUnwindSafe,
impl<ST, T> Send for SqlLiteral<ST, T> where
ST: Send,
T: Send,
ST: Send,
T: Send,
impl<ST, T> Sync for SqlLiteral<ST, T> where
ST: Sync,
T: Sync,
ST: Sync,
T: Sync,
impl<ST, T> Unpin for SqlLiteral<ST, T> where
ST: Unpin,
T: Unpin,
ST: Unpin,
T: Unpin,
impl<ST, T> UnwindSafe for SqlLiteral<ST, T> where
ST: UnwindSafe,
T: UnwindSafe,
ST: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> AsQuery for T where
T: Query,
[src]
T: Query,
type SqlType = <T as Query>::SqlType
The SQL type of Self::Query
type Query = T
What kind of query does this type represent?
fn as_query(Self) -> <T as AsQuery>::Query
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<QS, T, DB> BoxableExpression<QS, DB> for T where
DB: Backend,
T: Expression + SelectableExpression<QS> + NonAggregate + QueryFragment<DB>,
[src]
DB: Backend,
T: Expression + SelectableExpression<QS> + NonAggregate + QueryFragment<DB>,
impl<Conn, DB, T> ExecuteDsl<Conn, DB> for T where
Conn: Connection<Backend = DB>,
DB: Backend,
T: QueryFragment<DB> + QueryId,
[src]
Conn: Connection<Backend = DB>,
DB: Backend,
T: QueryFragment<DB> + QueryId,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> IntoSql for T
[src]
fn into_sql<T>(self) -> AsExprOf<Self, T> where
Self: AsExpression<T> + Sized,
[src]
Self: AsExpression<T> + Sized,
fn as_sql<'a, T>(&'a self) -> AsExprOf<&'a Self, T> where
&'a Self: AsExpression<T>,
[src]
&'a Self: AsExpression<T>,
impl<Conn, T, U> LoadQuery<Conn, U> for T where
Conn: Connection,
T: AsQuery + RunQueryDsl<Conn>,
U: Queryable<<T as AsQuery>::SqlType, <Conn as Connection>::Backend>,
<Conn as Connection>::Backend: HasSqlType<<T as AsQuery>::SqlType>,
<T as AsQuery>::Query: QueryFragment<<Conn as Connection>::Backend>,
<T as AsQuery>::Query: QueryId,
[src]
Conn: Connection,
T: AsQuery + RunQueryDsl<Conn>,
U: Queryable<<T as AsQuery>::SqlType, <Conn as Connection>::Backend>,
<Conn as Connection>::Backend: HasSqlType<<T as AsQuery>::SqlType>,
<T as AsQuery>::Query: QueryFragment<<Conn as Connection>::Backend>,
<T as AsQuery>::Query: QueryId,
impl<T, Conn> RunQueryDsl<Conn> for T where
T: Table,
[src]
T: Table,
fn execute(self, conn: &Conn) -> QueryResult<usize> where
Conn: Connection,
Self: ExecuteDsl<Conn>,
[src]
Conn: Connection,
Self: ExecuteDsl<Conn>,
fn load<U>(self, conn: &Conn) -> QueryResult<Vec<U>> where
Self: LoadQuery<Conn, U>,
[src]
Self: LoadQuery<Conn, U>,
fn get_result<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LoadQuery<Conn, U>,
[src]
Self: LoadQuery<Conn, U>,
fn get_results<U>(self, conn: &Conn) -> QueryResult<Vec<U>> where
Self: LoadQuery<Conn, U>,
[src]
Self: LoadQuery<Conn, U>,
fn first<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LimitDsl,
Limit<Self>: LoadQuery<Conn, U>,
[src]
Self: LimitDsl,
Limit<Self>: LoadQuery<Conn, U>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
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.
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>,