这是我的查询:
SELECT DISTINCT ap.apptype_id
FROM tblSubmission AS s
JOIN tblApp AS ap ON ap.app_id = s.app_id
WHERE s.app_id =406
OR s.app_id =180
OR s.app_id =179
它只返回与数据库中的行有关的唯一 apptype_id。它现在像它应该的那样工作,除了它返回一个多维数组而不是一维数组这一事实。我可以继续写一个 PHP 函数来解决这个问题,但我宁愿让查询正确返回数组,而不是让服务器做额外的工作来解决查询问题。谁能帮帮我?
此外,如果有人看到我可以优化此查询以使其更快的方法,那也很棒!
function db_query($querystring) {
$rec_set = array();
$result = mysql_query($querystring);
if (!$result) {
// do nothing, query might have failed but it might have just returned no results
#echo ("Invalid Query Result:<br /><b>" . $querystring . "</b><br />"); // debug
}elseif($result === true){
// do nothing, query didn't return anything but succeeded
}else{
while ($row = mysql_fetch_assoc($result)) { $rec_set[] = $row; }
mysql_free_result($result);
}
return $rec_set;
}
最佳答案
您要返回两条记录,所以它是多维的。
您有 DISTINCT ap.apptype_id
并且您的查询找到了两个具有不同 ID 的记录。
编辑:只是为了澄清;在你寻找的一维数组中我相信你想要的结果是:
array([7], [2]) // i.e your two distinct ids.
请记住,对于 mysql,您也会返回列标题,因此这种布局没有意义。
编辑 2:
也许这样的事情会有帮助?
$a = array(
0 => array('first'=>7),
1 => array('second'=>2)
);
$row = array_map('implode', $a);
输出:
array(2) { [0]=> string(1) "7" [1]=> string(1) "2" }
array_map 是您需要的函数。它应该可以按您的需要工作。
关于php - 为什么我的 MySQL 查询返回多维数组而不是一维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12918735/