我想向数据库表table插入数据
table 有三个字段  id,title,type_id,serial。
id是主键自增长int类型
title是varchar类型
type_id,也是int类型
serial也是int类型。
就是我想在向table插入数据的时候serial根据type_id进行自成长。
如果我插入了三条数据  三条数据的type_id都为1  那么serial就为1,2,3
那么我再次插入三条数据  三条数据的type_id都为2   那么serial还是依旧为1,2,3

解决方案 »

  1.   

    用PHP拼凑成批量sql,然后再插入。
      

  2.   

    一次插入的多条数据的type_id是不是一样的?
      

  3.   

    你可以用for循环。
    for($i=1;$i<=3;$i++){
           insert into table(id,title,type_id,serial) values ('','title的值','type_id','$i');
    }
    title。type_id的值在for循环外面构建。
      

  4.   

    //先查询出对应指定type_id的serial最大值
    $serial = 0;
    $sql = "SELECT MAX(`serial`) AS `serial` FROM table WHERE `type_id` = {$type_id}";
    $result = mysql_query($sql);
    if (mysql_num_rows($result) > 0) {
       $row = mysql_fetch_array($result);
       $serial = $row['serial'];
    }//插入新数据
    $sql = "INSERT INTO `table` (`title`, `type_id`, `serial`) VALUES ";
    $ar = array();
    for($i = 0; $i < 2; $i ++, ++$serial) $ar[] = "('{$title}',$type_id,{$serial})";
    $sql .= implode(',', $ar);
    if (!mysql_query($sql)) die(mysql_error());