[−][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> Expression for SqlLiteral<ST, T>
[src]
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> SelectableExpression<QS> for SqlLiteral<ST, T>
[src]
impl<ST, T> NonAggregate for SqlLiteral<ST, T>
[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]
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, 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]
Converts this QueryFragment
to its SQL representation. Read more
fn collect_binds(
&self,
out: &mut DB::BindCollector,
metadata_lookup: &DB::MetadataLookup
) -> QueryResult<()>
[src]
&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]
Is this query safe to store in the prepared statement cache? Read more
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>,
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]
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]
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]
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]
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]
fn clone(&self) -> SqlLiteral<ST, T>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<ST: Debug, T: Debug> Debug for SqlLiteral<ST, T>
[src]
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<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]
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, __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]
Auto Trait Implementations
impl<ST, T> Unpin for SqlLiteral<ST, T> where
ST: Unpin,
T: Unpin,
ST: Unpin,
T: Unpin,
impl<ST, T> Sync for SqlLiteral<ST, T> where
ST: Sync,
T: Sync,
ST: Sync,
T: Sync,
impl<ST, T> Send for SqlLiteral<ST, T> where
ST: Send,
T: Send,
ST: Send,
T: Send,
impl<ST, T> UnwindSafe for SqlLiteral<ST, T> where
ST: UnwindSafe,
T: UnwindSafe,
ST: UnwindSafe,
T: UnwindSafe,
impl<ST, T> RefUnwindSafe for SqlLiteral<ST, T> where
ST: RefUnwindSafe,
T: RefUnwindSafe,
ST: RefUnwindSafe,
T: RefUnwindSafe,
Blanket Implementations
impl<T> IntoSql for T
[src]
fn into_sql<T>(self) -> AsExprOf<Self, T> where
Self: AsExpression<T> + Sized,
[src]
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]
&'a Self: AsExpression<T>,
Convert &self
to an expression for Diesel's query builder. Read more
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<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<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<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, 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>,
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]
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]
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]
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]
Self: LimitDsl,
Limit<Self>: LoadQuery<Conn, U>,
Attempts to load a single record. Read more
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> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
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>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[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<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,