select * from tab group by age,sex,add
这样不行吗?

解决方案 »

  1.   

    这样不行,他要名字全部出来,只是把age,sex,add分别读到不同的数组。LZ是不是这样理解?
      

  2.   

    主要是我想根据分组来update,每组的编号重新分配.
    name   age   sex   add     id
    张三    15    男    北京    1
    李四    15    男    北京    2
    赵二    14    女    上海    3
    无名    14    男    天津    4
    王五    14    男    天津    5
    钱六    14    女    上海    6
               变更成:name   age   sex   add     id
    张三    15    男    北京    1
    李四    15    男    北京    2
    赵二    14    女    上海    1
    无名    14    男    天津    1
    王五    14    男    天津    2
    钱六    14    女    上海    2谢谢了.
      

  3.   

    lz是不是在php里做或是怎样?
    先 select distinct (age,sex,add) from table;
    然后遍历结果集,把每一条结果当成条件拼成sql语句,不就行了?
      

  4.   

    <?php
    require_once("db_conn.php");
    $sql = "SELECT distinct age,sex,addr from test";
    $res = mysql_query($sql);
    $is=1;
    while ($rs = mysql_fetch_array($res)){
    $sql_a = "select * from test where age='".$rs['age']."' and sex='".$rs['sex']."' and addr='".$rs['addr']."';";
    $res_a = mysql_query($sql_a);
    $id = 1;
    while ($rs_a = mysql_fetch_array($res_a)){
    $rs_a['id'] = $id;
    $text[$id] = $rs_a;
    $id++;
    }
    $text_a[$is] = $text;
    $is++;
    }
    print_r($text_a);
    ?>
      

  5.   

    得出的结果:
    Array
    (
        [1] => Array
            (
                [1] => Array
                    (
                        [0] => 1
                        [id] => 1
                        [1] => a
                        [name] => a
                        [2] => 15
                        [age] => 15
                        [3] => na
                        [sex] => na
                        [4] => bj
                        [addr] => bj
                    )            [2] => Array
                    (
                        [0] => 2
                        [id] => 2
                        [1] => b
                        [name] => b
                        [2] => 15
                        [age] => 15
                        [3] => na
                        [sex] => na
                        [4] => bj
                        [addr] => bj
                    )        )    [2] => Array
            (
                [1] => Array
                    (
                        [0] => 3
                        [id] => 1
                        [1] => c
                        [name] => c
                        [2] => 14
                        [age] => 14
                        [3] => nv
                        [sex] => nv
                        [4] => sh
                        [addr] => sh
                    )            [2] => Array
                    (
                        [0] => 6
                        [id] => 2
                        [1] => f
                        [name] => f
                        [2] => 14
                        [age] => 14
                        [3] => nv
                        [sex] => nv
                        [4] => sh
                        [addr] => sh
                    )        )    [3] => Array
            (
                [1] => Array
                    (
                        [0] => 4
                        [id] => 1
                        [1] => d
                        [name] => d
                        [2] => 14
                        [age] => 14
                        [3] => na
                        [sex] => na
                        [4] => tj
                        [addr] => tj
                    )            [2] => Array
                    (
                        [0] => 5
                        [id] => 2
                        [1] => e
                        [name] => e
                        [2] => 14
                        [age] => 14
                        [3] => na
                        [sex] => na
                        [4] => tj
                        [addr] => tj
                    )        ))
      

  6.   

    我换成这样写了:$db->query("SELECT age,sex,add FROM table");
    //取全部
    $rs = $db->fetchAll();
    //结果放入数组
    foreach ($rs as $key => $val){
    $max++;
    $sql_a = "SELECT id FROM table WHERE age='".$rs[$key][age]."' && sex='".$rs[$key][sex]."' && add='".$rs[$key][add]."' ;";
    $res_a = $db->query($sql_a);
    $id = 1;
    while ($rs_a = $db->fetchRow($res_a)){
    $id = 1;
    echo "UPDATE table SET id = $id  WHERE id = $rs_a[id] <br />";
    $id++;
    }
    }把echo换成SQL query就可以把id重新分配了.
    谢谢了,结帐给分.