(mySQL删除重复的数据库条目WHERE ...

时间:2014-06-26 15:24:15

标签: php mysql sql duplicates

嗨,我有一个这样的数据库

DB-name: plzahl
Sample Data:

code   |   plz
------------------
1          8000
1          8000
2          8000
3          8000
2          8001
3          8001
...

我想要的是删除所有重复项,使表中的那一个留下最高的"代码"列值。

我还没有数据库中的唯一标识符。添加一个是否更好,而不是使用mysql_fetch_array()并构建一个"删除数组"或者你会使用foreach来获取任何" plz",如果count> 0则搜索,如果获取它们,对它们进行排序并删除co​​unt-1?

到目前为止:

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("no connection: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT code, plz FROM plzahl");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    //... here goes the magic
    // make query to search for count $row['plz'] > 0 ?
    ....
}

mysql_free_result($result);
?>

感谢任何代码提示!!

1 个答案:

答案 0 :(得分:1)

以mysql方式执行:

mysql_query('CREATE TABLE plz_new LIKE plz');
mysql_query('INSERT INTO plz (SELECT MAX(code) AS code, plz FROM plzahl GROUP BY plz)');
mysql_query('DROP TABLE plz');
mysql_query('RENAME TABLE plz_new plz');