Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何进行排除重复记录的mysql搜索_Mysql_Select - Fatal编程技术网

如何进行排除重复记录的mysql搜索

如何进行排除重复记录的mysql搜索,mysql,select,Mysql,Select,我正在尝试对结构如下的表执行搜索 id、mls\U id、地址、代理id。我要做的是提取代理id的所有记录,但如果存在相同的mls,则不提取多个记录。例如: Select * From table WHERE agent_ID = 1234 可能会调出5条记录,但假设其中两条记录的mls_id相同。有没有一种方法可以让你只选择其中一个,而其他的结果都保持得体 SELECT DISTINCT * FROM table WHERE agent_ID = 1234 使用DISTINCT关键字将从结

我正在尝试对结构如下的表执行搜索 id、mls\U id、地址、代理id。我要做的是提取代理id的所有记录,但如果存在相同的mls,则不提取多个记录。例如:

Select * From table WHERE agent_ID = 1234
可能会调出5条记录,但假设其中两条记录的mls_id相同。有没有一种方法可以让你只选择其中一个,而其他的结果都保持得体

SELECT DISTINCT *
FROM table
WHERE agent_ID = 1234

使用
DISTINCT
关键字将从结果集中删除重复记录。

这似乎起到了作用:

它所做的是从具有相同mls_id的记录中选择具有最小id的记录

SELECT id, mls_id, address, agent_id
FROM MyTable t1
WHERE t1.agent_id=1 AND t1.id = 
    (SELECT Min(t2.id) 
     FROM MyTable t2 
     WHERE agent_id=1 AND t2.mls_id=t1.mls_id 
     GROUP BY t2.mls_id)

这是一个小提琴的例子:

它给了我同样的结果。我仍然得到三个具有相同mls_id字段的记录。如果我只是从agent_id=1234的表中选择了不同的mls_id,这将给我不同的结果,但我没有得到所需的其他字段,如地址、城市、st等。
SELECT DISTINCT*FROM table
SELECT*FROM table
完全相同,因为标准表中的所有行都是唯一的。哇,这很有效。比我以前创建的mysql语句复杂得多。谢谢