답변
임의의 위치에 행을 추가 할 수 없습니다. 테이블의 행 세트는 정의에 의해 정렬되지 않기 때문에 처음에는 "위치"가 없습니다. SELECT 쿼리에 대해서만 순서 규칙을 사용하여 원하는 순서로 결과를 검색 할 수 있습니다.
이 질문을 한 사실로 인해 현재 코드가 실수로 작동하고 있다는 걱정을하게됩니다. 행이 특정 순서로 나타나게하려면 SQL에 "ORDER BY"를 사용해야합니다. 그렇지 않으면 정의되지 않은 순서로 행을 가져옵니다.
삽입 된 순서와 같이 순서가 바뀌는 행이있을 수 있습니다. 구현 방법은 다르지만 더 많은 행을 삽입하거나 삭제하거나 명백한 이유가없는 경우 언제든지 바뀔 수 있습니다.
주문이 중요한 경우 주문을 사용해야합니다. 그리고 나서 그것은 "가장 효과적 일"할 것입니다. 하지만 어쨌든 추가 할 필요가 있다고 나에게 들린다.
임의의 위치에 행을 삽입하는 기술적 인 어려움을 견뎌내지 않으면 정규화의 '법률'을 위반하게됩니다.
레코드 집합의 데이터를 정렬해야하는 경우 ORDER BY 문을 통해 정렬해야합니다. 이것은 테이블에 포함 된 데이터에 대해 수행해야합니다. 사용자 입력, 예를 들어
- 첫 행에 따라 행을 주문하려면,/
- 두 번째 행을 [아래로 이동] [위로 이동]/[아래로 이동] [위로 이동]
- 셋째 행 , [위로 이동]/[아래로 이동]
'user_sorting'열을 추가하고 user_sorting 값이 부분 집합 대 고유 한 값인지 확인해야합니다.
테이블 중간에 규칙을 추가 할 수없는 경우이를 달성 할 수있는 다른 방법이 있습니까? –
죄송합니다. 죄송합니다. 맞춤법 오류가 있습니다. 테이블 중간에 행을 직접 추가 할 수 없다면 다른 방법으로이 작업을 수행 할 수 있습니까? –
앞서 말했듯이, 기술적으로 테이블 중간에 물건을 추가 할 수 없으며 ORDER BY 절을 사용하지 않는 경우 출력물에서 정렬되는 방법이 유용 할 수 있습니다.
설명의 편의를 위해 테이블에 row_id
이 있다고 가정하고 단순한 SELECT 문을 통해 행이 row_id
오름차순으로 나타나는 경우를 가정 해 봅니다. 중간에 행을 추가하려면 새 행의 "아래"에있는 모든 행 중 row_id
을 늘리고 해당 간격에 맞는 row_id
과 함께 새 행을 추가해야합니다. 그런 다음이 행을 출력하는 SELECT 문을 업데이트하여 row_id
(ORDER BY row_id
)으로 정렬해야합니다. 그렇지 않으면 작동하지 않습니다.
성취하려는 것을 알려주십시오. 당신의 테이블에는 무엇이 들어 있습니까? – Max