제한된 권한으로 MySQL 열 값 교환
데이터베이스 구조 변경 권한 없이 열 값을 업데이트하는 것은 문제가 될 수 있습니다. UPDATE 테이블 SET X=Y, Y=X와 같이 UPDATE 문을 사용하여 값을 바꾸는 직관적인 접근 방식으로는 충분하지 않습니다. 대신, 구조적 변경을 우회하는 다음 방법을 고려하십시오.
방법 1
임시 변수를 사용하여 한 값을 보유하는 동시에 다른 값을 할당합니다. 이렇게 하면 두 값이 동일한 데이터로 재정의되지 않습니다.
UPDATE swap_test SET x=y, y=@temp WHERE (@temp:=x) IS NOT NULL;
방법 2
일련의 할당을 사용하여 값을 교환합니다. 이 방법은 NULL 값과 NULL이 아닌 값을 모두 우아하게 처리합니다.
UPDATE swap_test SET x=(@temp:=x), x = y, y = @temp;
방법 3
셀프 조인을 활용하여 두 테이블 참조에서 값을 업데이트합니다. 이 방법에는 기본 키 또는 고유 인덱스가 필요합니다.
UPDATE swap_test s1, swap_test s2 SET s1.x=s1.y, s1.y=s2.x WHERE s1.id=s2.id;
각 방법마다 고유한 장점과 한계가 있습니다. 방법 1은 NULL이 아닌 값을 처리할 수 있는 반면, 방법 2는 NULL과 NULL이 아닌 값을 모두 처리할 수 있습니다. 방법 3에는 기본 키가 필요하지만 원하는 경우 여러 행 간에 교환할 수 있습니다. 궁극적으로 최선의 접근 방식은 현재 작업의 특정 요구 사항에 따라 달라집니다.
위 내용은 ALTER TABLE 권한 없이 MySQL 열 값을 어떻게 바꿀 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!