仅从 SQL 输出中读取一列作为 PHP 中的数值数组

Posted

技术标签:

【中文标题】仅从 SQL 输出中读取一列作为 PHP 中的数值数组【英文标题】:Reading only one column from SQL output as a numerical array in PHP 【发布时间】:2011-02-18 06:08:21 【问题描述】:

我运行以下查询:

  SELECT tagID, 
         COUNT(*) AS TotalOccurrences
    FROM coupon_tags
GROUP BY tagID
ORDER BY TotalOccurrences DESC 
   LIMIT 10

它返回如下输出:

tagID  TotalOccurrences 
------------------------
7      9
2      8
1      3
6      2
3      1
4      1
5      1
8      1

我不能做mysql_fetch_array(mysql_query($thatQuery);,因为它有两列数据,任何拉出的数组看起来都像垃圾。如何进一步将该查询简化为单列仍排序的数据,以便在数组中更容易使用?或者也许我使用了错误的 php/MySQL 函数(虽然我都看过了)?

编辑: 我发现查询在 phpMyAdmin 中可以正常工作,但是当我尝试使用 mysql_query() 进行查询时它会失败。

我的php代码:

$tagSQL = mysql_query($selectorSQL);
        if (!$tagSQL) die("query failed");  //fails here
            while ($tSrow = mysql_fetch_assoc($tagSQL)) 
                var_dump($tSrow);
            

【问题讨论】:

“任何拉出的数组看起来都像垃圾”是什么意思?你能做一个 vardump($thearray) 并发布结果吗? 请同时发布您的 php 代码 【参考方案1】:

您可以这样做以“将查询简化为单列仍排序的数据”。

SELECT tagID            
FROM coupon_tags
GROUP BY tagID
ORDER BY COUNT(tagID) DESC 
LIMIT 10

只需确保对单个列使用计数而不是计算所有内容,这将极大地影响性能。

【讨论】:

【参考方案2】:

不要试图在一行中完成所有事情。很难调试。

$sql = "SELECT ...";
$result = mysql_query($sql);
if (!$result) die("query failed");
while ($row = mysql_fetch_assoc($result)) 
  var_dump($row);

【讨论】:

是的,问题是查询失败。问题是 - 当我在 phpMyAdmin 中运行它时,它工作正常。我如何从这里拿走它?

以上是关于仅从 SQL 输出中读取一列作为 PHP 中的数值数组的主要内容,如果未能解决你的问题,请参考以下文章

从数据库中查出两列数据,返回的是一个hashmap,怎么把其中的一列作为显示值一列作为value,数据库是oracle

仅从具有 id 作为 JQuery 数组的表单中获取数值?

如何仅从 SQL 查询输出中获取不带括号的值

SQL 将单独的查询作为原始查询中的一列加入

我想更新sql 表1中的某一列数值,这个数值是从另外一个表中取出来的。语句怎么写

Python如何读取csv文件某一列的每一行数据,并判断该数值是不是满足条件?