获取所有数据并删除表格的副本

时间:2011-10-11 06:04:58

标签: php mysql sql database

有一个表格有三个字段:id, word, username

它目前有这样的数据:

1 | run | thisguy
2 | run | thisguy
3 | go | thatgirl
4 | go | thatguy
5 | go | thatgirl

我想要的是1,3和4.我不想要2和5,因为它们是重复的。 我怎么把它们拿出来?

5 个答案:

答案 0 :(得分:2)

  1. 在同一张桌子上做: 在必填字段/

  2. 上创建唯一索引
  3. 在新表中填写:

  4. a)通过从原始表中选择唯一数据来创建临时表。

    b)删除原始表格。

    c)将临时表重命名为原始表的名称。

     CREATE TABLE tempr SELECT id, type,name FROM myTable GROUP BY type,name;
     DROP TABLE myTable;
     ALTER TABLE tempr RENAME TO myTable ;
    

    还要在此表上创建类型名称的唯一索引,以防止将来重复。

答案 1 :(得分:0)

DELETE t2 FROM mytable AS t1
JOIN mytable AS t2 USING (word, username)
WHERE t1.id < t2.id;

答案 2 :(得分:0)

您可以使用内置函数distinctGROUP BY

的mysql

鲜明

Mysql_query("SELECT DISTINCT id, word, username FROM persons");

分组

Mysql_query("SELECT * FROM persons GROUP BY word");

当然,您可以按用户名或任何您想要的内容进行分组。

纳斯

答案 3 :(得分:0)

如果你想在你的表中只有唯一的记录,那就去做DhruvPathak在他的回答中所说的话。但是,如果您想通过查询获取记录,则可以使用distinct关键字。您的查询将如下所示

select id,distinct(word),username from $table

答案 4 :(得分:0)

您是否尝试过使用DISTINCT条款?