집 >데이터 베이스 >MySQL 튜토리얼 >MySQL이 동적으로 생성된 필드 이름을 사용하여 필드를 선택할 수 있습니까?
MySQL의 동적 필드 이름 선택
MySQL에서는 문자열로 저장된 동적 필드 이름을 기반으로 필드를 선택할 수 있습니까? ?
원래 질문:
is it possible to select field which name is string? SELECT 'fieldname' FROM table i need this for trigger to have dynamic field names something like SET fieldname = NEW.`name`; UPDATE table SET fieldname = 1 ;
답변:
다음을 기반으로 동적으로 필드를 선택할 수 있는지 여부 문자열은 문자열이 있는 위치에 따라 다릅니다.
외부 응용 프로그램의 문자열:
필드 이름 문자열이 외부 응용 프로그램에 있는 경우 MySQL 문을 구성하는 것은 간단합니다.
MySQL 테이블의 문자열:
단, 필드명 문자열이 MySQL 테이블에 저장되어 있는 경우에는 직접 선택할 수 없습니다. MySQL에는 eval()과 같은 평가 기능이 없습니다. 다음 접근 방식을 사용하면 이 작업이 불가능합니다.
Suppose you have a table queries with a field columnname that refers to one of the column names in the table mytable. There might be additional columns in queries that allow you to select the columnname you want. INSERT INTO queries (columname) VALUES ("name") SELECT (select columnname from queries) from mytable
Prepared 문 사용:
해결 방법으로 준비된 문을 사용할 수 있지만 주의해야 합니다. 해키적인 접근 방식입니다.
SELECT columnname from queries into @colname; SET @table = 'mytable'; SET @s = CONCAT('SELECT ',@colname,' FROM ', @table); PREPARE stmt FROM @s; EXECUTE stmt;
위 내용은 MySQL이 동적으로 생성된 필드 이름을 사용하여 필드를 선택할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!