복붙노트

[SQL] MySQL의 테이블 열 이름을 얻기?

SQL

MySQL의 테이블 열 이름을 얻기?

MySQL의에서 테이블의 열 이름을 잡을 수있는 방법이 있습니까? PHP를 사용하여

해결법

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

    1.당신은 DESCRIBE 사용할 수 있습니다 :

    당신은 DESCRIBE 사용할 수 있습니다 :

    DESCRIBE my_table;
    

    또는 최신 버전에서 당신은 INFORMATION_SCHEMA를 사용할 수 있습니다 :

    SELECT COLUMN_NAME
      FROM INFORMATION_SCHEMA.COLUMNS
      WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';
    

    또는 당신은 SHOW 열을 사용할 수 있습니다 :

    SHOW COLUMNS FROM my_table;
    
  2. ==============================

    2.다음 SQL 문은 거의 동일합니다

    다음 SQL 문은 거의 동일합니다

    SELECT COLUMN_NAME
      FROM INFORMATION_SCHEMA.COLUMNS
     WHERE table_name = 'tbl_name'
      [AND table_schema = 'db_name']
      [AND column_name LIKE 'wild']
    
    SHOW COLUMNS
    FROM tbl_name
    [FROM db_name]
    [LIKE 'wild']
    

    참조 : INFORMATION_SCHEMA의 COLUMNS

  3. ==============================

    3.나는 간단한 배열의 모든 열 이름을 반환하는 PDO 기능을했다.

    나는 간단한 배열의 모든 열 이름을 반환하는 PDO 기능을했다.

    public function getColumnNames($table){
        $sql = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = :table";
        try {
            $core = Core::getInstance();
            $stmt = $core->dbh->prepare($sql);
            $stmt->bindValue(':table', $table, PDO::PARAM_STR);
            $stmt->execute();
            $output = array();
            while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
                $output[] = $row['COLUMN_NAME'];                
            }
            return $output; 
        }
    
        catch(PDOException $pe) {
            trigger_error('Could not connect to MySQL database. ' . $pe->getMessage() , E_USER_ERROR);
        }
    }
    

    출력은 배열 될 것이다 :

    Array (
    [0] => id
    [1] => name
    [2] => email
    [3] => shoe_size
    [4] => likes
    ... )
    

    죄송합니다 괴사가에 대한하지만 내 기능을 좋아한다)

    추신 I 클래스 코어를 포함하지 않은하지만 당신은 자신의 클래스 .. D.S.을 사용할 수 있습니다

  4. ==============================

    4.이 솔루션은 명령 줄 MySQL의에서입니다

    이 솔루션은 명령 줄 MySQL의에서입니다

    mysql>USE information_schema;
    

    쿼리 단지 변화 아래에서 <- DATABASE_NAME -> 데이터베이스 및에 <- TABLENAME -> 테이블 이름에 당신은 필드 값은 DESCRIBE 문을 원하는 위치에

    mysql> SELECT COLUMN_NAME FROM COLUMNS WHERE TABLE_SCHEMA = '<--DATABASE_NAME-->' AND   TABLE_NAME='<--TABLENAME-->';
    
  5. ==============================

    5.원하는 경우이있다 :

    원하는 경우이있다 :

    mysql_query('SHOW COLUMNS FROM tableName'); 
    
  6. ==============================

    6.이건 어때:

    이건 어때:

    SELECT @cCommand := GROUP_CONCAT( COLUMN_NAME ORDER BY column_name SEPARATOR ',\n')
    FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';
    
    SET @cCommand = CONCAT( 'SELECT ', @cCommand, ' from my_database.my_table;');
    PREPARE xCommand from @cCommand;
    EXECUTE xCommand;
    
  7. ==============================

    7.그것은 또한 당신이 사용할 수있는 노트에 흥미 TABLE_NAME FROM TABLE_NAME 및 SHOW 열을 설명과 동의어이다 TABLE_NAME을 EXPLAIN EXPLAIN 있지만 것이 더 일반적으로 쿼리 실행 계획에 대한 정보를 얻는 데 사용됩니다.

    그것은 또한 당신이 사용할 수있는 노트에 흥미 TABLE_NAME FROM TABLE_NAME 및 SHOW 열을 설명과 동의어이다 TABLE_NAME을 EXPLAIN EXPLAIN 있지만 것이 더 일반적으로 쿼리 실행 계획에 대한 정보를 얻는 데 사용됩니다.

  8. ==============================

    8.들여다보다:

    들여다보다:

    mysql_query('DESCRIBE '.$table);
    
  9. ==============================

    9.MySQL의 기능 테이블을 설명 당신이 가고 싶은 곳을 얻어야한다 ( "테이블"에 대한 당신의 테이블 이름을 넣어). 당신은 몇 가지 출력을 구문 분석해야 할 것이다, 그러나 그것은 매우 간단합니다. 내 기억으로 당신이 쿼리를 실행하는 경우는 PHP는 일반적으로 당신에게 열쇠로 열 이름이있을 것이다 키 - 값 쌍을 줄 것이다 액세스하는 기능을 결과를 쿼리합니다. 난 그렇게 그 날을 보유하지 않는 PHP를 사용하지만 이후 그 동안되었습니다. :)

    MySQL의 기능 테이블을 설명 당신이 가고 싶은 곳을 얻어야한다 ( "테이블"에 대한 당신의 테이블 이름을 넣어). 당신은 몇 가지 출력을 구문 분석해야 할 것이다, 그러나 그것은 매우 간단합니다. 내 기억으로 당신이 쿼리를 실행하는 경우는 PHP는 일반적으로 당신에게 열쇠로 열 이름이있을 것이다 키 - 값 쌍을 줄 것이다 액세스하는 기능을 결과를 쿼리합니다. 난 그렇게 그 날을 보유하지 않는 PHP를 사용하지만 이후 그 동안되었습니다. :)

  10. ==============================

    10.당신은 또한 같이)로 MYSQL_ASSOC을 (체크 아웃 할 수 있습니다 :

    당신은 또한 같이)로 MYSQL_ASSOC을 (체크 아웃 할 수 있습니다 :

    $rs = mysql_query($sql);
    while ($row = mysql_fetch_array($rs)) {
    //$row[0] = 'First Field';
    //$row['first_field'] = 'First Field';
    }
    
  11. ==============================

    11.내가 사용하므로 다른 답변은 연관 배열을 반환하는 동안은 평면 배열로 열 이름을 필요 :

    내가 사용하므로 다른 답변은 연관 배열을 반환하는 동안은 평면 배열로 열 이름을 필요 :

    $con = mysqli_connect('localhost',$db_user,$db_pw,$db_name);
    $table = 'people';
    
    /**
    * Get the column names for a mysql table
    **/
    
    function get_column_names($con, $table) {
      $sql = 'DESCRIBE '.$table;
      $result = mysqli_query($con, $sql);
    
      $rows = array();
      while($row = mysqli_fetch_assoc($result)) {
        $rows[] = $row['Field'];
      }
    
      return $rows;
    }
    
    $col_names = function get_column_names($con, $table);
    

    이제 동일 col_names $ :

    (
        [0] => name
        [1] => parent
        [2] => number
        [3] => chart_id
        [4] => type
        [5] => id
    )
    
  12. ==============================

    12.mysql_list_fields 기능은 관심 있습니다; 하지만, 수동 상태로 :

    mysql_list_fields 기능은 관심 있습니다; 하지만, 수동 상태로 :

  13. ==============================

    13.MySQL의에서 다음과 같은 키워드 또는 쿼리에서 열 세부 사항 및 테이블 구조를 얻을 수 있습니다

    MySQL의에서 다음과 같은 키워드 또는 쿼리에서 열 세부 사항 및 테이블 구조를 얻을 수 있습니다

    1.DESC의 TABLE_NAME

    2.DESCRIBE의 TABLE_NAME

    TABLE_NAME FROM 3.SHOW COLUMNS

    테이블 TABLE_NAME을 만들 4.SHOW;

    5.EXPLAIN의 TABLE_NAME

  14. ==============================

    14.

    $col = $db->query("SHOW COLUMNS FROM category");
    
    while ($fildss = $col->fetch_array())
    {             
        $filds[] = '"{'.$fildss['Field'].'}"';
        $values[] = '$rows->'.$fildss['Field'].'';
    }
    
    if($type == 'value')
    {
        return $values = implode(',', $values);
    }
    else {
         return $filds = implode(',', $filds);
    }
    
  15. ==============================

    15.이것은 나를 위해 일한 ..

    이것은 나를 위해 일한 ..

    $sql = "desc MyTableName";
    $result = @mysql_query($sql);
    while($row = @mysql_fetch_array($result)){
        echo $row[0]."<br>";
    }
    
  16. ==============================

    16.당신은 간단하게 다음 명령을 사용하여 전체 테이블 구조를 얻을 수 있습니다.

    당신은 간단하게 다음 명령을 사용하여 전체 테이블 구조를 얻을 수 있습니다.

    DESC TableName
    

    또는 당신은 쿼리를 사용할 수 있습니다.

    SHOW COLUMNS FROM TableName
    
  17. ==============================

    17.나는 PHP를 통해 테이블 ​​열을 가져 오기 위해 간단한 PHP 스크립트를 작성할 수 있습니다 : Show_table_columns.php

    나는 PHP를 통해 테이블 ​​열을 가져 오기 위해 간단한 PHP 스크립트를 작성할 수 있습니다 : Show_table_columns.php

    <?php
    $db = 'Database'; //Database name
    $host = 'Database_host'; //Hostname or Server ip
    $user = 'USER'; //Database user
    $pass = 'Password'; //Database user password
    $con = mysql_connect($host, $user, $pass);
    if ($con) {
        $link = mysql_select_db($db) or die("no database") . mysql_error();
        $count = 0;
        if ($link) {
            $sql = "
                SELECT column_name
                FROM   information_schema.columns
                WHERE  table_schema = '$db'
                       AND table_name = 'table_name'"; // Change the table_name your own table name
            $result = mysql_query($sql, $con);
            if (mysql_query($sql, $con)) {
                echo $sql . "<br> <br>";
                while ($row = mysql_fetch_row($result)) {
                    echo "COLUMN " . ++$count . ": {$row[0]}<br>";
                    $table_name = $row[0];
                }
                echo "<br>Total No. of COLUMNS: " . $count;
            } else {
                echo "Error in query.";
            }
        } else {
            echo "Database not found.";
        }
    } else {
        echo "Connection Failed.";
    }
    ?>
    

    즐겨!

  18. from https://stackoverflow.com/questions/1526688/get-table-column-names-in-mysql by cc-by-sa and MIT license