@@ -132,26 +132,28 @@ pub async fn get_update_data(limit: Queries) -> (String, Vec<QueryRow>) {
132132 let db_pool: DbPoolConnection = get_db_connection ( ) . await ;
133133 let mut query_res_list: Vec < QueryRow > = Vec :: with_capacity ( limit as usize ) ;
134134 let rows: Vec < QueryRow > = get_some_row_id ( limit, & db_pool) . await ;
135- let mut query : String = format ! ( "UPDATE {} SET randomNumber = CASE id " , TABLE_NAME_WORLD ) ;
135+ let mut sql : String = format ! ( "UPDATE {} SET randomNumber = CASE id " , TABLE_NAME_WORLD ) ;
136136 let mut id_list: Vec < i32 > = Vec :: with_capacity ( limit as usize ) ;
137137 let mut value_list: String = String :: new ( ) ;
138- let mut id_in_clause: String = String :: from ( "?::INTEGER" ) ;
138+ let mut id_in_clause: String = format ! ( "{}::INTEGER" , rows[ 0 ] . id) ;
139+ let last_idx: usize = rows. len ( ) - 1 ;
139140 for ( i, row) in rows. iter ( ) . enumerate ( ) {
140141 let new_random_number: i32 = rand:: rng ( ) . random_range ( 1 ..RANDOM_MAX ) ;
141142 let id: i32 = row. id ;
142143 id_list. push ( id) ;
143144 value_list. push_str ( & format ! (
144- "WHEN ? ::INTEGER {} THEN {} ? ::INTEGER " ,
145+ "WHEN {} ::INTEGER THEN {}::INTEGER " ,
145146 id, new_random_number
146147 ) ) ;
147- if i > 0 {
148- id_in_clause. push_str ( ",? ::INTEGER") ;
148+ if i < last_idx {
149+ id_in_clause. push_str ( & format ! ( ",{} ::INTEGER", id . to_string ( ) ) ) ;
149150 }
150151 query_res_list. push ( QueryRow :: new ( id, new_random_number) ) ;
151152 }
152- query. push_str ( & value_list) ;
153- query. push_str ( & format ! ( "END WHERE id IN ({})" , id_in_clause) ) ;
154- ( query, query_res_list)
153+ sql. push_str ( & value_list) ;
154+ sql. push_str ( & format ! ( "END WHERE id IN ({})" , id_in_clause) ) ;
155+ print_success ! ( sql) ;
156+ ( sql, query_res_list)
155157}
156158
157159#[ inline]
0 commit comments