>  기사  >  데이터 베이스  >  문자열 변수를 사용하여 MySQL 필드에 동적으로 액세스할 수 있습니까?

문자열 변수를 사용하여 MySQL 필드에 동적으로 액세스할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-19 08:23:02869검색

Can MySQL Fields Be Accessed Dynamically Using String Variables?

변수를 기준으로 MySQL 필드에 동적으로 액세스

문제:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.