문제:
MySQL 필드에 저장된 이름으로 프로그래밍 방식으로 액세스할 수 있습니까? 특히 필드 값을 동적으로 업데이트하기 위한 문자열 변수인가요?
사용 사례:
SET fieldname = NEW.`name`; UPDATE table SET fieldname = 1 ;
답변:
변수별로 MySQL 필드에 동적으로 액세스하는 기능은 컨텍스트에 따라 다릅니다.
외부 변수:
필드 이름이 외부 애플리케이션에 변수로 저장되는 경우(예: PHP), 유효한 MySQL 문 구성이 가능합니다.
내부 변수:
단, 필드 이름이 MySQL 테이블 내에 값으로 저장되어 있는 경우에는 해당 필드에 액세스합니다. 표준 SQL 구문을 사용하는 것은 불가능합니다. 이는 MySQL에 평가(eval) 기능이 없기 때문입니다.
준비된 문 기술:
해결책으로 준비된 문을 활용할 수 있지만 이 접근 방식은 다음과 같습니다. 해키 솔루션으로 간주됩니다. 구현 방법은 다음과 같습니다.
SELECT columnname from queries into @colname; SET @table = 'mytable'; SET @s = CONCAT('SELECT ',@colname,' FROM ', @table); PREPARE stmt FROM @s; EXECUTE stmt;
이 기술에는 테이블의 열 이름을 사용자 변수(@colname)에 저장하고, 동적 SQL 문을 연결하고, 문을 준비하고, 실행하는 작업이 포함됩니다.
위 내용은 문자열 변수를 사용하여 MySQL 필드에 동적으로 액세스할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!