1
무의미한 제목의 일은 유감스럽게 생각합니다.하지만 더 적합한 것은 아닙니다. 나는 다음과 같습니다 (초) (첫번째) dimension
및 order_by
에 의해 주문한 모든 항목을 나열하고MySQL - 변수 증분을 사용한 순차적 재정렬 알고리즘/업데이트
SELECT * FROM `table`
+----+-----------+----------+-------+
| id | dimension | order_by | value |
+----+-----------+----------+-------+
| 1 | 1 | 1 | 1st |
| 2 | 1 | 100 | 3rd |
| 3 | 2 | 300 | 5th |
| 4 | 3 | 999 | 6th |
| 5 | 1 | 2 | 2nd |
| 6 | 2 | 1 | 4th |
+----+-----------+----------+-------+
:
나는이처럼 보이는 MySQL의 테이블을 가지고
SELECT * FROM `table` ORDER BY `dimension`, `order_by`
+----+-----------+----------+-------+
| id | dimension | order_by | value |
+----+-----------+----------+-------+
| 1 | 1 | 1 | 1st |
| 5 | 1 | 2 | 2nd |
| 2 | 1 | 100 | 3rd |
| 6 | 2 | 1 | 4th |
| 3 | 2 | 300 | 5th |
| 4 | 3 | 999 | 6th |
+----+-----------+----------+-------+
이제 가능하면 하나만 사용하여 order_by
을 재정렬하는 함수를 작성하고 싶습니다. 내가 (각 차원에 대해 이야기하는, 불행하게도, 시작하지 않는) 지금까지 가지고 무엇
SELECT * FROM `table` ORDER BY `dimension`, `order_by`
+----+-----------+----------+-------+
| id | dimension | order_by | value |
+----+-----------+----------+-------+
| 1 | 1 | 1 | 1st |
| 5 | 1 | 2 | 2nd |
| 2 | 1 | 3 | 3rd |
| 6 | 2 | 1 | 4th |
| 3 | 2 | 2 | 5th |
| 4 | 3 | 1 | 6th |
+----+-----------+----------+-------+
: : 이제
UPDATE `table` AS `l`
JOIN (SELECT @i=1 FROM `table`) AS `i`
SET `order_by` = @i:=i
, 내 질문이 될 것 update
쿼리, 그것은 그런 식으로 보이게하기 : 하나의 UPDATE
쿼리만으로 가능합니까?