请问这个语句怎么写?GROUP BY 好像不行 select * from tab group by age,sex,add这样不行吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这样不行,他要名字全部出来,只是把age,sex,add分别读到不同的数组。LZ是不是这样理解? 主要是我想根据分组来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谢谢了. lz是不是在php里做或是怎样?先 select distinct (age,sex,add) from table;然后遍历结果集,把每一条结果当成条件拼成sql语句,不就行了? <?phprequire_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);?> 得出的结果: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 ) )) 我换成这样写了:$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重新分配了.谢谢了,结帐给分. 如何防止灌水? 关于PHP连接路径的问题 求一段显示动态表格的代码! 新手提出问题,顺便送分 return ' ';里怎么插入函数? 问个时间转换的问题....... 登陆phpmyadmin密码怎么设定,备份过的mysql数据库如何恢复? 求助!一段php权限判断的代码 PHP的ftp函数一问 如何评价一个站点的性能?? 如何实现多个二级域名都保持登陆状态 求教
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谢谢了.
先 select distinct (age,sex,add) from table;
然后遍历结果集,把每一条结果当成条件拼成sql语句,不就行了?
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);
?>
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
) ))
//取全部
$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重新分配了.
谢谢了,结帐给分.