【问题标题】:How to select only fieldname when using show columns query in mysql在mysql中使用显示列查询时如何仅选择字段名
【发布时间】:2011-04-11 04:33:31
【问题描述】:

我使用此查询来选择给定表中的字段。是否可以只选择字段名而不选择表的整个结构?

SHOW COLUMNS FROM student

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您正在尝试确定表结构?您可以直接查询 MySQL 的 information_schema 数据库中的字段名:

    select COLUMN_NAME from information_schema.COLUMNS where TABLE_NAME='student';
    

    【讨论】:

    • 谢谢,没想到居然可以使用信息模式数据库
    • 是否可以指定数据库?如果我有另一个数据库,其中有一个名为 student 的表怎么办?它也会出现对吗?
    • 是的。该表中还有一个“TABLE_SCHEMA”字段,它是数据库名称。
    • 在 column_name 之前加上 distinct 才会生效。
    【解决方案2】:

    前面提到的解决方案不是正确的。示例:

    CREATE DATABASE db1;
    CREATE DATABASE db2;
    CREATE TABLE db1.t ( id_1 INT);
    CREATE TABLE db2.t ( id_2 INT);
    SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_NAME  ='t';
    

    这将显示:

    +-------------+
    | COLUMN_NAME |
    +-------------+
    | id_1        |
    | id_2        |
    +-------------+
    

    建议表t 有两列,这显然是不正确的。此查询列出了所有数据库中名为t 的表的所有列all

    相反,您应该指定哪个数据库包含要从中选择列名的表t

    SELECT COLUMN_NAME 
        FROM information_schema.COLUMNS 
        WHERE 
            TABLE_NAME = 't' AND 
            TABLE_SCHEMA = 'db1';
    

    【讨论】:

      【解决方案3】:

      从 TABLE_NAME 中选择 COLUMN_NAME

      例如:ROLLNO 是表 Student 的 column_Name....

      从学生中选择 ROLLNO

      【讨论】:

      • -1 您完全误读了这个问题。他不是要求选择一列,而是询问如何从表模式中选择一列:information_schema
      • 问题是关于从特定表中获取列名。不是给定列名的数据。
      猜你喜欢
      • 2013-04-25
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      • 1970-01-01
      • 2016-07-19
      • 2010-10-13
      • 1970-01-01
      相关资源
      最近更新 更多