0
<?php
$db = mysql_connect('localhost', 'root', '') or
  die ('Unable to connect. Check your connection parameters.');

mysql_select_db('my_db', $db) or die(mysql_error($db));

$query = 'SELECT
       second, count(*) FROM tb_one GROUP BY second';


$result = mysql_query($query, $db) or die(mysql_error($db));

while ($row = mysql_fetch_assoc($result)) {

    foreach ($row as $value) {

        $queryy = 'INSERT INTO tb_two (name) VALUES ("' . $value . '")';
        mysql_query($queryy, $db) or die(mysql_error($db));

    }
}
?>

在此脚本中,第一个查询旨在选择和计算重复值(效果很好),但在第二个查询中,我想将所选数据插入另一个有两列的表中,第一列为其名称,第二列为其计数重复...如果插入语句中有一列,它会很好地工作并添加值。但我想要两列——一列用于名称,另一列用于计算重复次数。谢谢楼主。。。我试了好多天。。。

4

3 回答 3

4

你可以在 MySQL 中完成这一切:

INSERT INTO tb_two(name, count)
    SELECT second, count(*) 
    FROM tb_one 
    GROUP BY second;

不过,在其他新闻中 mysql_ 函数已被弃用。您应该使用PDO 库。或者至少是MySQL 改进库

于 2013-08-13T15:01:49.563 回答
0

通过为重复列设置别名让您的生活更轻松,这样您就可以更轻松地解决它。方法如下:

替换这个

$query = 'SELECT second, count(*) FROM tb_one GROUP BY second';

这样:

$query = 'SELECT second, count(*) as duplicates FROM tb_one GROUP BY second';

您现在将“重复”作为列名。然后你可以使用它,例如:

while ($row = mysql_fetch_assoc($result)) {

foreach ($row as $r) {

$queryy = "INSERT INTO tb_two SET name='".$r['second']."', duplicates='".$r['duplicates']."'";
mysql_query($queryy, $db) or die(mysql_error($db));

}
}
于 2013-08-13T15:04:38.263 回答
0

试试这个,对不起,如果它有语法问题,我是在记事本里做的。

while ($row = mysql_fetch_assoc($result)) 
{
    $query = "INSERT INTO tb_two (column1, column2) VALUES ('" . $row[0] . "', '" . $row[1] . "')";
    mysql_query($query, $db) or die(mysql_error($db));
}
于 2013-08-13T15:07:38.760 回答