lua_sql_builder/mysql/
update.rs1use super::where_::{Combiner, Where};
2
3pub struct Update<'a> {
4 table: &'a str,
5 set: Vec<[&'a str; 2]>,
6 where_: Where,
7}
8
9#[allow(dead_code)]
10impl<'a> Update<'a> {
11 pub fn new(table: &'a str) -> Update<'a> {
12 Update {
13 table,
14 set: vec![],
15 where_: Where::new(Combiner::And),
16 }
17 }
18
19 pub fn set(&mut self, set: Vec<[&'a str; 2]>) -> &mut Update<'a> {
20 self.set = set;
21 self
22 }
23
24 pub fn where_(&mut self, where_: Where) -> &mut Update<'a> {
25 self.where_ = where_;
26 self
27 }
28
29 pub fn build(&self) -> String {
30 let mut statement = format!("UPDATE {} SET", self.table);
31
32 for s in &self.set {
33 if s[1].parse::<f64>().is_ok() {
34 statement.push_str(&format!(" {} = {},", s[0], s[1]));
35 } else {
36 statement.push_str(&format!(" {} = '{}',", s[0], s[1]));
37 }
38 }
39 statement.pop();
40
41 statement.push_str(&format!(" {}", &self.where_.build()));
42
43 statement = statement.trim().to_string() + ";";
44 statement
45 }
46}