mysql select 문에서 동적 열 이름이 필요한 오늘은 MySQL에 빠져 있습니다. 설명해 드리죠 :MySql의 동적 열 이름 선택
sql> select name1 from namescollection.
sql> select name2 from namescollection.
sql> select name3 from namescollection.
그래서 namescollection 테이블이 세 개의 열 이름 1가, NAME2, NAME3 내가 1,2,3와 같은 동적 인 내 저장 프로 시저에서이 테이블을 쿼리 싶습니다 변수로 전달 될 필요 ,하지만 난 쿼리 너무 간단한 SQL에 : 내가 부르고 때
SELECT concat('name','1') FROM `namescollection`
name1 ----- name1 rather fetching name1 field's value.
어떤이에 제안 할 수 오른쪽 기능은 내가 출력 NAME1에 권리를 알고 있지만 CONCAT 오히려 사용해야 concat하지만 난 내가 사용하고 싶다. t를 열 이름으로 사용하십시오. 밖으로
DELIMITER //
CREATE PROCEDURE selname (IN col VARCHAR(20))
BEGIN
SET @sql = CONCAT('SELECT ', col, ' FROM tbl');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END//
DELIMITER ;
테스트를 가진 : 간단한 예를 들어
: 당신이 할 수있는 일
나는 이해할 수 없다. 'SELECT name1','SELECT name2','SELECT name3'을 사용하는 것이 잘못된 것인가요? –
PHP string cat을 사용하지 않는 이유는 무엇입니까? – codetiger
저장 프로 시저 @codetiger 및 phMyCoder에서 사용해야합니다. procedurename (1) // 2,3,4 등의 호출로 실행하고 싶습니다. 다음 날, 몇 개월 또는 몇 년 동안 5 또는 8로 변경 될 수 있습니다. – Luckyy