有一个表格有三个字段:id, word, username
它目前有这样的数据:
1 | run | thisguy
2 | run | thisguy
3 | go | thatgirl
4 | go | thatguy
5 | go | thatgirl
我想要的是1,3和4.我不想要2和5,因为它们是重复的。 我怎么把它们拿出来?
答案 0 :(得分:2)
在同一张桌子上做: 在必填字段/
在新表中填写:
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)
您可以使用内置函数distinct
或GROUP BY
鲜明
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条款?