Guest User

Untitled

a guest
Nov 20th, 2017
363
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. BEGIN
  2. DECLARE loop_done INT DEFAULT 0;
  3. DECLARE current_user_id INT;
  4. DECLARE current_todo_id INT;
  5. DECLARE todo_position INT DEFAULT 0;
  6. DECLARE cur_users CURSOR FOR
  7. SELECT id FROM users;
  8. DECLARE cur_todos CURSOR FOR
  9. SELECT id FROM todo WHERE user_id = @uid;
  10. DECLARE CONTINUE HANDLER FOR NOT FOUND SET loop_done = 1;
  11.  
  12. OPEN cur_users;
  13. loop_users: LOOP
  14.  
  15. FETCH cur_users INTO current_user_id;
  16.  
  17. IF loop_done = 1 THEN
  18. SET loop_done = 0;
  19. LEAVE loop_users;
  20. END IF;
  21.  
  22. SET @uid = current_user_id;
  23. SET todo_position = 0;
  24.  
  25. OPEN cur_todos;
  26.  
  27. loop_todos: LOOP
  28. FETCH cur_todos INTO current_todo_id;
  29. IF loop_done = 1 THEN
  30. SET loop_done = 0;
  31. SET todo_position = 0;
  32. LEAVE loop_todos;
  33. END IF;
  34.  
  35. UPDATE todo SET position = todo_position WHERE user_id = @uid;
  36. SET todo_position = todo_position + 1;
  37.  
  38. END LOOP loop_todos;
  39.  
  40. CLOSE cur_todos;
  41.  
  42. END LOOP loop_users;
  43. END$$
  44.  
  45. +----------+
  46. | position |
  47. +----------+
  48. | 3 |
  49. | 3 |
  50. | 3 |
  51. | 3 |
  52. | 5 |
  53. | 5 |
  54. | 5 |
  55. | 5 |
  56. | 5 |
  57. +----------+
  58.  
  59. +----------+
  60. | position |
  61. +----------+
  62. | 0 |
  63. | 1 |
  64. | 2 |
  65. | 3 |
  66. | 0 |
  67. | 1 |
  68. | 2 |
  69. | 3 |
  70. | 4 |
  71. +----------+
Add Comment
Please, Sign In to add comment