Php 获取具有该行最大值的列和行

Php 获取具有该行最大值的列和行,php,mysql,sql,Php,Mysql,Sql,我有一张200列的表格,上面有所有的国家。其中的条目是来自每个国家的点击次数的整数。为了在地理图表中显示这些值,我希望以如下方式解析这些值: 输出: table: |name|US|IN|SA|CHN|AU|EU|....... |john|0 |12|2 |0 |1 |0 |....... |andy|20|17|2 |10 |1 |0 |....... 因此,我想排除那些点击次数为0并按用户名john分组的国家 这是我的方法,但它不完整 IN,12 SA,2

我有一张200列的表格,上面有所有的国家。其中的条目是来自每个国家的点击次数的整数。为了在地理图表中显示这些值,我希望以如下方式解析这些值:

输出:

table: |name|US|IN|SA|CHN|AU|EU|.......
       |john|0 |12|2 |0  |1 |0 |.......
       |andy|20|17|2 |10 |1 |0 |.......
因此,我想排除那些点击次数为0并按用户名john分组的国家

这是我的方法,但它不完整

IN,12
SA,2
AU,1

你可以这样做

选择“国家/地区名称”列, 案例列名称 当“我们”时,我们 当“IN”然后“IN”` 当‘SA’时,然后是SA 当'CHN'然后CHN 当“AU”然后“AU” 什么时候是‘欧盟’然后是‘欧盟’ 末端咔哒声 表1中的t交叉连接 选择列名称 从信息_SCHEMA.COLUMNS 其中TABLE_NAME='Table1' 和表_SCHEMA=SCHEMA 和列名称“NAME” C 其中name='john' 点击次数大于0的 按说明订购 输出:

 $query = "SELECT * FROM `countries`";


    $result = mysql_query("SHOW COLUMNS FROM `countries`.`graph_geo_table` WHERE Field NOT IN ('Name')");
    if (!$result) {
        echo 'Could not run query: ' . mysql_error();
        exit;
    }

if (mysql_num_rows($result) > 0) {
    while ($row = mysql_fetch_assoc($result)) {

    echo $row[Field];

    }
}

这里是演示

我建议您创建单独的国家/地区表,并在用户和国家/地区之间建立链接。通常,存储200列是一个坏主意,因为它的可伸缩性非常差,但即使我存储..是否有办法只显示不包含0的行字段?嗯,是的,是的。类似于从用户中选择users.name、user\u countries.value、countries.name在用户上左加入用户\u countries.id=用户\u countries.user\u id在用户\u countries上左加入国家。country\u id=用户所在国家的国家。value>0您好,先生!最重要的是,感谢您提供了如此详尽的答案。假设另一个用户“andy”注册,是否有方法获取相同国家/地区的andy的值,然后单击我编辑了question@googledev非常欢迎您:如果您希望一次获取一个名称的数据,只需添加WHERE子句。请参阅更新的答案。另一方面,如果你想看到两个或两个以上的名字并排点击计数比它是不同的故事。 | COUNTRY | CLICKS | |---------|--------| | IN | 12 | | SA | 2 | | AU | 1 |