Struct diesel::expression::SqlLiteral [−][src]
pub struct SqlLiteral<ST, T = ()> { /* fields omitted */ }
Expand description
Returned by the sql()
function.
Implementations
pub 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);
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 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>,
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>,
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>,
type SqlType = ST
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 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>,
impl<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>,
Walk over this QueryFragment
for all passes. Read more
Converts this QueryFragment
to its SQL representation. Read more
fn 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
Is this query safe to store in the prepared statement cache? Read more
Can the SQL generated by Self
be uniquely identified by its type? Read more
fn 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
Executes the given query, returning a Vec
with the returned rows. Read more
Runs the command, and returns the affected row. Read more
Runs the command, returning an Vec
with the affected rows. Read more
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<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>,
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
type Query = T
type Query = T
What kind of query does this type represent?
Mutably borrows from an owned value. Read more
impl<Conn, DB, T> ExecuteDsl<Conn, DB> for T where
DB: Backend,
T: QueryFragment<DB> + QueryId,
Conn: Connection<Backend = DB>,
impl<Conn, DB, T> ExecuteDsl<Conn, DB> for T where
DB: Backend,
T: QueryFragment<DB> + QueryId,
Conn: Connection<Backend = DB>,
Convert self
to an expression for Diesel’s query builder. Read more