如何在select命令中选择表的主索引作为列

时间:2015-11-08 09:24:36

标签: php mysql

我有一张桌子,Here is my table image

我的查询Select * from categories我的问题是我在执行上述查询后如何获取或回显我的表的主索引。

<?php echo "Primary field is =".$rec['primary_field_name']; ?>
并且同一查询的输出为

  

主要字段是= cat_id

提前致谢

2 个答案:

答案 0 :(得分:1)

我认为这应该做你想要的:

<?php
    $conn = mysql_connect( $dbhost, $dbuser, $dbpass );
    mysql_select_db( $dbname );

    $sql='select * from `categories`;';

    $res=mysql_query( $sql, $conn );
    if( $res ){
        while( $rs = mysql_fetch_object( $res ) ){
            echo $rs->cat_id . ' ' . $rs->cat_desc .' '. $rs->cat_status.' '.$rs->cat_image.'<br />';
        }
    }

    mysql_free_result( $res );
    mysql_close( $conn );
?>

由于我误解了您的问题,您可能会对以下问题感兴趣。

select `column_name`
  from `information_schema`.`columns`
  where (`table_schema` = database() )
  and (`table_name` = 'categories')
  and (`column_key` = 'pri');

虽然我不知道如何在标准的sql查询中获取主键的名称。

您可以尝试以下“一体化”解决方案:

select *,
    ( select group_concat(`column_name`)
      from `information_schema`.`columns`
      where (`table_schema` = database() )
      and (`table_name` = 'categories')
      and (`column_key` = 'pri') ) as 'PrimaryKey'
from `categories`;

我在子查询中使用了group_concat因为很有可能拥有composite Primary Key - 没有group_concat您可能会收到错误。

答案 1 :(得分:0)

使用mysql_fetch_assoc获取列或值

$sql='select * from `categories`';
$query=mysql_query( $sql, $conn );
while($row = mysql_fetch_assoc($query))
{
    foreach($row as $key => $value)
    {
        echo $key;//For print column name
        echo $value;//For print value
    }
}