2012-01-29 10 views
0

단일 SQL 문에서 가변 개수의 요소를 선택할 수 있습니까? 예를 들면. 값이있는 매개 변수의 수에 따라 문에서 선택됩니다. 명세서가 다음과 같은 경우 :SQL의 동적 선택 변수

"Select x, y, z from table A where abc='123';" 

이고 x, y 및 z는 이전 페이지에서 전달 된 값입니다. 그래서 단지 x와 z는 값이있는 경우 다음 문은 같이 작동합니다 :

"Select x, z from table A where abc='123';" 

만 x는 값이있는 경우, 그것은 선택해야합니다 :

"Select x from table A where abc='123';" 

이 할 수 있습니까?

+0

"x, y 및 z는 이전 페이지에서 전달 된 값입니다."- 무슨 말씀 이세요? "이전 페이지"는 무엇입니까? – Oded

+0

나는 PHP를 사용하고있어 사용자가보고 싶은 필드를 선택하여 사용자가 선택한 결과를 기반으로 결과를 표시하기를 원합니다. 필자는 이것들을 매개 변수로 데이터베이스 함수에 전달하여 그에 따라 결과를 검색합니다. – codingNewbie

+0

순수 SQL 또는 응용 프로그램 서버 또는 저장 프로 시저를 사용하여이 작업을 수행하려고합니까? –

답변

0

웹 페이지에서 코드를 작성하는 경우 코드를 사용하여 select 문을 수정하여 SQL 서버에 전달하십시오.

SQL (stored proc 또는 something)에서이 작업을 수행하고 어떤 열을 선택하여 전달하면 select 문을 동적으로 변수로 작성할 수 있습니다. 그런 다음 변수를 실행하십시오. 가능하지만 권장하지는 않습니다.

var 문은 = "선택"+ @columns + "테이블에서 어디 ABC = '123'"분명히 간부 @statement

, 당신은 SQL 주입을 방지하기 위해 웹 페이지에서이 작업을 사용하는 경우주의하십시오.

+0

데이터베이스 연결에 PHP와 mysqli를 사용하고 있습니다. 열 이름이 배열이나 다른 것입니까? – codingNewbie

+0

PHP를 사용하는 경우 php를 사용하여 동적으로 문을 작성하십시오. 여기를 참조하십시오 : http://stackoverflow.com/questions/4704051/dynamic-sql-queries-in-code-possible –

0

올바른 방법은 사용자의 요청에 따라 SQL 문을 연결하거나 코드의 열을 숨기는 것입니다. SQL 문에서이 작업을 시도하는 것은 올바른 방법이 아닙니다.

0

동적으로 문자열을 작성하는 경우 PHP에 전달 된 매개 변수를 확인하고 적절한 SQL을 사용하는 PHP에 조건부 논리를 넣으면됩니다.