嗨,我有一个这样的数据库
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则搜索,如果获取它们,对它们进行排序并删除count-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);
?>
感谢任何代码提示!!
答案 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');