Struct diesel::expression::SqlLiteral
source · [−]pub struct SqlLiteral<ST, T = ()> { /* private fields */ }
Expand description
Returned by the sql()
function.
Implementations
sourceimpl<ST, T> SqlLiteral<ST, T>
impl<ST, T> SqlLiteral<ST, T>
sourcepub fn bind<BindST, U>(
self,
bind_value: U
) -> UncheckedBind<Self, U::Expression> where
U: AsExpression<BindST>,
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);
sourcepub fn sql(self, sql: &str) -> SqlLiteral<ST, Self>
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
sourceimpl<ST, T, __Rhs> Add<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
<Self as Expression>::SqlType: Add,
__Rhs: AsExpression<<<Self as Expression>::SqlType as Add>::Rhs>,
impl<ST, T, __Rhs> Add<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
<Self as Expression>::SqlType: Add,
__Rhs: AsExpression<<<Self as Expression>::SqlType as Add>::Rhs>,
sourceimpl<ST: Clone, T: Clone> Clone for SqlLiteral<ST, T>
impl<ST: Clone, T: Clone> Clone for SqlLiteral<ST, T>
sourcefn clone(&self) -> SqlLiteral<ST, T>
fn clone(&self) -> SqlLiteral<ST, T>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<ST: Debug, T: Debug> Debug for SqlLiteral<ST, T>
impl<ST: Debug, T: Debug> Debug for SqlLiteral<ST, T>
sourceimpl<ST, T, __Rhs> Div<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
<Self as Expression>::SqlType: Div,
__Rhs: AsExpression<<<Self as Expression>::SqlType as Div>::Rhs>,
impl<ST, T, __Rhs> Div<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
<Self as Expression>::SqlType: Div,
__Rhs: AsExpression<<<Self as Expression>::SqlType as Div>::Rhs>,
sourceimpl<ST, T> Expression for SqlLiteral<ST, T>
impl<ST, T> Expression for SqlLiteral<ST, T>
type SqlType = ST
type SqlType = ST
The type that this expression represents in SQL
sourceimpl<ST, T, __Rhs> Mul<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
<Self as Expression>::SqlType: Mul,
__Rhs: AsExpression<<<Self as Expression>::SqlType as Mul>::Rhs>,
impl<ST, T, __Rhs> Mul<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
<Self as Expression>::SqlType: Mul,
__Rhs: AsExpression<<<Self as Expression>::SqlType as Mul>::Rhs>,
sourceimpl<ST, T> Query for SqlLiteral<ST, T>
impl<ST, T> Query for SqlLiteral<ST, T>
sourceimpl<ST, T, DB> QueryFragment<DB> for SqlLiteral<ST, T> where
DB: Backend,
T: QueryFragment<DB>,
impl<ST, T, DB> QueryFragment<DB> for SqlLiteral<ST, T> where
DB: Backend,
T: QueryFragment<DB>,
sourcefn walk_ast(&self, out: AstPass<'_, DB>) -> QueryResult<()>
fn walk_ast(&self, out: AstPass<'_, DB>) -> QueryResult<()>
Walk over this QueryFragment
for all passes. Read more
sourcefn to_sql(&self, out: &mut DB::QueryBuilder) -> QueryResult<()>
fn to_sql(&self, out: &mut DB::QueryBuilder) -> QueryResult<()>
Converts this QueryFragment
to its SQL representation. Read more
sourcefn collect_binds(
&self,
out: &mut DB::BindCollector,
metadata_lookup: &DB::MetadataLookup
) -> QueryResult<()>
fn collect_binds(
&self,
out: &mut DB::BindCollector,
metadata_lookup: &DB::MetadataLookup
) -> QueryResult<()>
Serializes all bind parameters in this query. Read more
sourcefn is_safe_to_cache_prepared(&self) -> QueryResult<bool>
fn is_safe_to_cache_prepared(&self) -> QueryResult<bool>
Is this query safe to store in the prepared statement cache? Read more
sourceimpl<ST, T> QueryId for SqlLiteral<ST, T>
impl<ST, T> QueryId for SqlLiteral<ST, T>
sourceconst HAS_STATIC_QUERY_ID: bool
const HAS_STATIC_QUERY_ID: bool
Can the SQL generated by Self
be uniquely identified by its type? Read more
sourceimpl<ST, T, Conn> RunQueryDsl<Conn> for SqlLiteral<ST, T>
impl<ST, T, Conn> RunQueryDsl<Conn> for SqlLiteral<ST, T>
sourcefn execute(self, conn: &Conn) -> QueryResult<usize> where
Conn: Connection,
Self: ExecuteDsl<Conn>,
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
sourcefn load<U>(self, conn: &Conn) -> QueryResult<Vec<U>> where
Self: LoadQuery<Conn, U>,
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
sourcefn get_result<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LoadQuery<Conn, U>,
fn get_result<U>(self, conn: &Conn) -> QueryResult<U> where
Self: LoadQuery<Conn, U>,
Runs the command, and returns the affected row. Read more
sourcefn get_results<U>(self, conn: &Conn) -> QueryResult<Vec<U>> where
Self: LoadQuery<Conn, U>,
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
sourceimpl<ST, T, __Rhs> Sub<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
<Self as Expression>::SqlType: Sub,
__Rhs: AsExpression<<<Self as Expression>::SqlType as Sub>::Rhs>,
impl<ST, T, __Rhs> Sub<__Rhs> for SqlLiteral<ST, T> where
Self: Expression,
<Self as Expression>::SqlType: Sub,
__Rhs: AsExpression<<<Self as Expression>::SqlType as Sub>::Rhs>,
impl<QS, ST, T> AppearsOnTable<QS> for SqlLiteral<ST, T>
impl<ST, T> NonAggregate for SqlLiteral<ST, T>
impl<QS, ST, T> SelectableExpression<QS> for SqlLiteral<ST, T>
Auto Trait Implementations
impl<ST, T> RefUnwindSafe for SqlLiteral<ST, T> where
ST: RefUnwindSafe,
T: RefUnwindSafe,
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> Unpin for SqlLiteral<ST, T> where
ST: Unpin,
T: Unpin,
impl<ST, T> UnwindSafe for SqlLiteral<ST, T> where
ST: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
sourceimpl<T> AsQuery for T where
T: Query,
impl<T> AsQuery for T where
T: Query,
type Query = T
type Query = T
What kind of query does this type represent?
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Conn, DB, T> ExecuteDsl<Conn, DB> for T where
Conn: Connection<Backend = DB>,
DB: Backend,
T: QueryFragment<DB> + QueryId,
impl<Conn, DB, T> ExecuteDsl<Conn, DB> for T where
Conn: Connection<Backend = DB>,
DB: Backend,
T: QueryFragment<DB> + QueryId,
sourceimpl<T> IntoSql for T
impl<T> IntoSql for T
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more