module ClosureTree::NumericOrderSupport::MysqlAdapter
Public Instance Methods
reorder_with_parent_id(parent_id, minimum_sort_order_value = nil)
click to toggle source
# File lib/closure_tree/numeric_order_support.rb, line 16 def reorder_with_parent_id(parent_id, minimum_sort_order_value = nil) return if parent_id.nil? && dont_order_roots min_where = if minimum_sort_order_value "AND #{quoted_order_column} >= #{minimum_sort_order_value}" else "" end connection.execute 'SET @i = 0' connection.execute <<-SQL.squish UPDATE #{quoted_table_name} SET #{quoted_order_column} = (@i := @i + 1) + #{minimum_sort_order_value.to_i - 1} WHERE #{where_eq(parent_column_name, parent_id)} #{min_where} ORDER BY #{nulls_last_order_by} SQL end