>  기사  >  데이터 베이스  >  MySQL 쿼리 실행을 위해 열 이름을 동적으로 연결할 수 있습니까?

MySQL 쿼리 실행을 위해 열 이름을 동적으로 연결할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-24 04:43:30958검색

Can Column Names Be Concatenated Dynamically for MySQL Query Execution?

MySQL에서 쿼리 실행을 위해 동적으로 열 이름 연결

문제 설명:

MySQL에서 , 열 이름의 첫 번째 부분이 문자열이고 두 번째 부분이 다른 쿼리에서 검색된 숫자인 쿼리에서 열 이름을 연결하는 것이 좋습니다.

시도한 해결 방법:

다음 SQL 문은 연결을 시도합니다.

<code class="sql">SELECT CONCAT('column', mytable.mycolumn) FROM table ...</code>

그러나 이 접근 방식은 원하는 결과를 얻지 못하며 연결이 효과적이지 않은 것 같습니다.

해결책 :

이전의 믿음과는 달리 서버측에서 준비된 문을 사용하여 MySQL에서 열 이름을 동적으로 생성하는 것이 실제로 가능합니다. 다음 접근 방식을 고려하십시오.

<code class="sql">set @query := (
  select concat(
    "select",
      group_concat(concat("\n  1 as ", column_name) separator ','),
    "\nfrom dual")
  from information_schema.columns
  where table_name = 'columns')
;

prepare s1 from @query
;
execute s1
;
deallocate prepare s1
;</code>

이 코드는 열 테이블의 내용을 기반으로 쿼리 문자열을 동적으로 구성합니다. 그런 다음 prepare 문을 사용하여 쿼리 문자열을 컴파일하고, 이후에 실행 문을 사용하여 실행할 수 있습니다.

위 내용은 MySQL 쿼리 실행을 위해 열 이름을 동적으로 연결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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