我运行以下查询:
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);
}
答案 0 :(得分:1)
您可以像这样“将该查询简化为单列静止排序数据”。
SELECT tagID
FROM coupon_tags
GROUP BY tagID
ORDER BY COUNT(tagID) DESC
LIMIT 10
只需确保在单个列上使用count而不是计算所有内容,这将极大地影响性能。
答案 1 :(得分:0)
不要尝试在一行中做所有事情。使调试变得困难。
$sql = "SELECT ...";
$result = mysql_query($sql);
if (!$result) die("query failed");
while ($row = mysql_fetch_assoc($result)) {
var_dump($row);
}