【问题标题】:How to show column names of multiple table in mysql如何在mysql中显示多个表的列名
【发布时间】:2016-11-02 03:40:22
【问题描述】:

我有 2 张桌子 personcountry。表person 有3 列id_personname_personid_countrycountry 有 2 列 id_countryname_country

我想显示“name_person”和“name_country”,只是列的名称,而不是记录。我怎样才能得到这个?

【问题讨论】:

  • 请看this的回答。
  • 了解您想要实现的目标会有所帮助。如果您已经知道列名,为什么还要获取它们?
  • 我想获取列的名称以从中创建一个字符串。然后将其与表的记录合并。最后我只有一根弦。对不起,我的英语不好先生:)
  • 您要执行的查询是什么?

标签: php mysql


【解决方案1】:

您可以访问 MySQL 的信息模式数据库中的表列:

SELECT `COLUMN_NAME` 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_NAME` IN ('country', 'person')
    AND `COLUMN_NAME` LIKE 'name_%';

【讨论】:

    【解决方案2】:

    应该这样做:

    $result = $db->query('SELECT p.name_person, c.name_country FROM person AS p LEFT JOIN country as c ON (p.id_country=c.id_country)');
    $fields = array_keys($result->fetch(PDO::FETCH_ASSOC));
    

    如果您想获取数据而不仅仅是列名,只需删除 array_keys。

    $fields = $result->fetch(PDO::FETCH_ASSOC);
    

    【讨论】:

    • 显示记录。我想显示列的名称
    • 第一次使用array_keys应该只打印列名。
    【解决方案3】:

    你可以使用

        $result = $db->query('SELECT person.name_person, country.name_country FROM person LEFT JOIN country ON (person.id_country=country.id_country)');
    
        print_r(array_keys($result));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-18
      • 1970-01-01
      • 2014-12-16
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-18
      相关资源
      最近更新 更多