[−][src]Struct diesel::expression::SqlLiteral
Returned by the sql()
function.
Methods
impl<ST, T> SqlLiteral<ST, T>
[src]
impl<ST, T> SqlLiteral<ST, T>
pub fn bind<BindST, U>(
self,
bind_value: U
) -> UncheckedBind<Self, U::Expression> where
U: AsExpression<BindST>,
[src]
pub fn bind<BindST, U>(
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]
pub fn sql(self, sql: &str) -> SqlLiteral<ST, Self>
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> Expression for SqlLiteral<ST, T>
[src]
impl<ST, T> Expression for SqlLiteral<ST, T>
type SqlType = ST
The type that this expression represents in SQL
impl<QS, ST, T> AppearsOnTable<QS> for SqlLiteral<ST, T>
[src]
impl<QS, ST, T> AppearsOnTable<QS> for SqlLiteral<ST, T>
impl<QS, ST, T> SelectableExpression<QS> for SqlLiteral<ST, T>
[src]
impl<QS, ST, T> SelectableExpression<QS> for SqlLiteral<ST, T>
impl<ST, T> NonAggregate for SqlLiteral<ST, T>
[src]
impl<ST, T> NonAggregate for SqlLiteral<ST, T>
impl<ST, T> QueryId for SqlLiteral<ST, T>
[src]
impl<ST, T> QueryId for SqlLiteral<ST, T>
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]
fn query_id() -> Option<TypeId>
Returns the type id of Self::QueryId
if Self::HAS_STATIC_QUERY_ID
. Returns None
otherwise. Read more
impl<ST, T> Query for SqlLiteral<ST, T>
[src]
impl<ST, T> Query for SqlLiteral<ST, T>
impl<ST, T, DB> QueryFragment<DB> for SqlLiteral<ST, T> where
DB: Backend,
T: QueryFragment<DB>,
[src]
impl<ST, T, DB> QueryFragment<DB> for SqlLiteral<ST, T> where
DB: Backend,
T: QueryFragment<DB>,
fn walk_ast(&self, out: AstPass<DB>) -> QueryResult<()>
[src]
fn walk_ast(&self, out: AstPass<DB>) -> QueryResult<()>
fn to_sql(&self, out: &mut DB::QueryBuilder) -> QueryResult<()>
[src]
fn to_sql(&self, out: &mut DB::QueryBuilder) -> QueryResult<()>
Converts this QueryFragment
to its SQL representation. Read more
fn collect_binds(
&self,
out: &mut DB::BindCollector,
metadata_lookup: &DB::MetadataLookup
) -> QueryResult<()>
[src]
fn collect_binds(
&self,
out: &mut DB::BindCollector,
metadata_lookup: &DB::MetadataLookup
) -> QueryResult<()>
Serializes all bind parameters in this query. Read more
fn is_safe_to_cache_prepared(&self) -> QueryResult<bool>
[src]
fn is_safe_to_cache_prepared(&self) -> QueryResult<bool>
Is this query safe to store in the prepared statement cache? Read more
impl<ST, T, Conn> RunQueryDsl<Conn> for SqlLiteral<ST, T>
[src]
impl<ST, T, Conn> RunQueryDsl<Conn> for SqlLiteral<ST, T>
fn execute(self, conn: &Conn) -> QueryResult<usize> where
Conn: Connection,
Self: ExecuteDsl<Conn>,
[src]
fn execute(self, conn: &Conn) -> QueryResult<usize> where
Conn: Connection,
Self: ExecuteDsl<Conn>,
Executes the given command, returning the number of rows affected. Read more
fn load<U>(self, conn: &Conn) -> QueryResult<Vec<U>> where
Self: LoadQuery<Conn, U>,
[src]
fn load<U>(self, conn: &Conn) -> QueryResult<Vec<U>> where
Self: LoadQuery<Conn, U>,
Executes the given query, returning a Vec
with the returned rows. Read more
fn get_result<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LoadQuery<Conn, U>,
[src]
fn get_result<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LoadQuery<Conn, U>,
Runs the command, and returns the affected row. Read more
fn get_results<U>(self, conn: &Conn) -> QueryResult<Vec<U>> where
Self: LoadQuery<Conn, U>,
[src]
fn get_results<U>(self, conn: &Conn) -> QueryResult<Vec<U>> where
Self: LoadQuery<Conn, U>,
Runs the command, returning an Vec
with the affected rows. Read more
fn first<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LimitDsl,
Limit<Self>: LoadQuery<Conn, U>,
[src]
fn first<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LimitDsl,
Limit<Self>: LoadQuery<Conn, U>,
Attempts to load a single record. Read more
impl<ST: Clone, T: Clone> Clone for SqlLiteral<ST, T>
[src]
impl<ST: Clone, T: Clone> Clone for SqlLiteral<ST, T>
fn clone(&self) -> SqlLiteral<ST, T>
[src]
fn clone(&self) -> SqlLiteral<ST, T>
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl<ST: Debug, T: Debug> Debug for SqlLiteral<ST, T>
[src]
impl<ST: Debug, T: Debug> Debug for SqlLiteral<ST, T>
impl<ST, T, __Rhs> Add<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
Self::SqlType: Add,
__Rhs: AsExpression<<Self::SqlType as Add>::Rhs>,
[src]
impl<ST, T, __Rhs> Add<__Rhs> for SqlLiteral<ST, T> where
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]
fn add(self, rhs: __Rhs) -> Self::Output
impl<ST, T, __Rhs> Sub<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
Self::SqlType: Sub,
__Rhs: AsExpression<<Self::SqlType as Sub>::Rhs>,
[src]
impl<ST, T, __Rhs> Sub<__Rhs> for SqlLiteral<ST, T> where
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]
fn sub(self, rhs: __Rhs) -> Self::Output
impl<ST, T, __Rhs> Mul<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
Self::SqlType: Mul,
__Rhs: AsExpression<<Self::SqlType as Mul>::Rhs>,
[src]
impl<ST, T, __Rhs> Mul<__Rhs> for SqlLiteral<ST, T> where
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]
fn mul(self, rhs: __Rhs) -> Self::Output
impl<ST, T, __Rhs> Div<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
Self::SqlType: Div,
__Rhs: AsExpression<<Self::SqlType as Div>::Rhs>,
[src]
impl<ST, T, __Rhs> Div<__Rhs> for SqlLiteral<ST, T> where
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]
fn div(self, rhs: __Rhs) -> Self::Output
Auto Trait Implementations
impl<ST, T> Send for SqlLiteral<ST, T> where
ST: Send,
T: Send,
impl<ST, T> Send for SqlLiteral<ST, T> where
ST: Send,
T: Send,
impl<ST, T> Sync for SqlLiteral<ST, T> where
ST: Sync,
T: Sync,
impl<ST, T> Sync for SqlLiteral<ST, T> where
ST: Sync,
T: Sync,
Blanket Implementations
impl<T> IntoSql for T
[src]
impl<T> IntoSql for T
fn into_sql<T>(self) -> AsExprOf<Self, T> where
Self: AsExpression<T> + Sized,
[src]
fn into_sql<T>(self) -> AsExprOf<Self, T> where
Self: AsExpression<T> + Sized,
Convert self
to an expression for Diesel's query builder. Read more
fn as_sql<'a, T>(&'a self) -> AsExprOf<&'a Self, T> where
&'a Self: AsExpression<T>,
[src]
fn as_sql<'a, T>(&'a self) -> AsExprOf<&'a Self, T> where
&'a Self: AsExpression<T>,
Convert &self
to an expression for Diesel's query builder. Read more
impl<QS, T, DB> BoxableExpression for T where
DB: Backend,
T: Expression + SelectableExpression<QS> + NonAggregate + QueryFragment<DB>,
[src]
impl<QS, T, DB> BoxableExpression for T where
DB: Backend,
T: Expression + SelectableExpression<QS> + NonAggregate + QueryFragment<DB>,
impl<T> AsQuery for T where
T: Query,
[src]
impl<T> AsQuery for T where
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]
fn as_query(Self) -> <T as AsQuery>::Query
impl<Conn, T, U> LoadQuery 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]
impl<Conn, T, U> LoadQuery 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,
impl<Conn, DB, T> ExecuteDsl for T where
Conn: Connection<Backend = DB>,
DB: Backend,
T: QueryFragment<DB> + QueryId,
[src]
impl<Conn, DB, T> ExecuteDsl for T where
Conn: Connection<Backend = DB>,
DB: Backend,
T: QueryFragment<DB> + QueryId,
impl<T, Conn> RunQueryDsl for T where
T: Table,
[src]
impl<T, Conn> RunQueryDsl for T where
T: Table,
fn execute(self, conn: &Conn) -> QueryResult<usize> where
Conn: Connection,
Self: ExecuteDsl<Conn>,
[src]
fn execute(self, conn: &Conn) -> QueryResult<usize> where
Conn: Connection,
Self: ExecuteDsl<Conn>,
Executes the given command, returning the number of rows affected. Read more
fn load<U>(self, conn: &Conn) -> QueryResult<Vec<U>> where
Self: LoadQuery<Conn, U>,
[src]
fn load<U>(self, conn: &Conn) -> QueryResult<Vec<U>> where
Self: LoadQuery<Conn, U>,
Executes the given query, returning a Vec
with the returned rows. Read more
fn get_result<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LoadQuery<Conn, U>,
[src]
fn get_result<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LoadQuery<Conn, U>,
Runs the command, and returns the affected row. Read more
fn get_results<U>(self, conn: &Conn) -> QueryResult<Vec<U>> where
Self: LoadQuery<Conn, U>,
[src]
fn get_results<U>(self, conn: &Conn) -> QueryResult<Vec<U>> where
Self: LoadQuery<Conn, U>,
Runs the command, returning an Vec
with the affected rows. Read more
fn first<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LimitDsl,
Limit<Self>: LoadQuery<Conn, U>,
[src]
fn first<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LimitDsl,
Limit<Self>: LoadQuery<Conn, U>,
Attempts to load a single record. Read more
impl<T> From for T
[src]
impl<T> From for T
impl<T, U> Into for T where
U: From<T>,
[src]
impl<T, U> Into for T where
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
impl<T, U> TryFrom for T where
T: From<U>,
[src]
impl<T, U> TryFrom for T where
T: From<U>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T> Borrow for T where
T: ?Sized,
[src]
impl<T> Borrow for T where
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
impl<T> Any for T where
T: 'static + ?Sized,
fn get_type_id(&self) -> TypeId
[src]
fn get_type_id(&self) -> TypeId
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
impl<T> BorrowMut for T where
T: ?Sized,
[src]
impl<T> BorrowMut for T where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
fn borrow_mut(&mut self) -> &mut T