복붙노트

[SQL] MySQL의 반복, 컬럼 이름을 통하여

SQL

MySQL의 반복, 컬럼 이름을 통하여

나는 각 열 이름을 통해 MySQL의 테이블, 루프에서 열 이름을 모두 가져온 다음 변수로 그 열 이름을 사용하여 저장 프로 시저를 실행하고 싶습니다. 의 효과에 뭔가 :

colnames = get column names from table

for each colname
  if something changed then
    do something
  else
    do something else

그것은 나에게 열 이름을 줄 것이다 myTable에 FROM SHOW의 COLUMNS처럼 보이지만 어떻게 루프에 열 이름을 얻을 것인가?

난 정말 네이티브 SQL을 사용하여 저장 프로 시저에서이 모든 것을 실행하고 싶습니다. 이후 나는 아직도 MySQL을의 복잡한을 배우고, 이것은 정말 내 사업을 도움이 될 것이다. 당신의 도움을 주셔서 감사합니다.

해결법

  1. ==============================

    1.난 당신이 뭔가를 원한다고 생각 :

    난 당신이 뭔가를 원한다고 생각 :

    DECLARE col_names CURSOR FOR
      SELECT column_name
      FROM INFORMATION_SCHEMA.COLUMNS
      WHERE table_name = 'tbl_name'
      ORDER BY ordinal_position;
    
    
    select FOUND_ROWS() into num_rows;
    
    SET i = 1;
    the_loop: LOOP
    
       IF i > num_rows THEN
            CLOSE col_names;
            LEAVE the_loop;
        END IF;
    
    
        FETCH col_names 
        INTO col_name;     
    
         //do whatever else you need to do with the col name
    
        SET i = i + 1;  
    END LOOP the_loop;
    
  2. ==============================

    2.당신은 열 이름을 얻기 위해 INFORMATION_SCHEMA에 대한 쿼리를 작성할 수 있습니다 :

    당신은 열 이름을 얻기 위해 INFORMATION_SCHEMA에 대한 쿼리를 작성할 수 있습니다 :

    SELECT column_name
      FROM INFORMATION_SCHEMA.COLUMNS
      WHERE table_name = 'tbl_name'
      ORDER BY ordinal_position
    

    열 이름은 그럼 그냥 테이블에서 모든 데이터가 될 것으로 반환됩니다.

  3. from https://stackoverflow.com/questions/4950252/mysql-iterate-through-column-names by cc-by-sa and MIT license