检查已经查询的不同字段值,但不进行其他查询

时间:2009-10-08 09:12:58

标签: php mysql

我正在尝试制作具有多个子菜单的菜单。我需要进行查询以获取前面查询的结果,并且只留下某些字段的不同结果。如果我每次服务器错误都会进行新查询,因为查询会搜索veri大数据库。

所以简而言之:选择distinct(field)形式(已经成为查询)  在mysql或php中有什么办法可以做到这一点吗?

2 个答案:

答案 0 :(得分:1)

你能不能只使用子查询? SELECT DISTINCT field FROM (SELECT * FROM menus WHERE ...) More information on subqueries in MySQL。子查询将允许您根据内部选择的结果执行外部选择。

答案 1 :(得分:0)

在php中你可以循环第一个查询结果,构建一个包含不同字段的数组:

$result = mysql_query($sql);// result of 1st query

$arr = array();//an array that will contain distinct field values

while ($row = mysql_fetch_assoc($result)) {// for each row
    if (!in_array($row["field"], $arr))    // check if it's not in the array
        $arr[] = $row["field"]             // add it
}