SELECT DISTINCT field1, field2, field3, ......
FROM table;

我试图完成以下SQL语句,但我希望它返回所有列。 这可能吗?

就像这样:

SELECT DISTINCT field1, * 
FROM table;

当前回答

SELECT DISTINCT FIELD1, FIELD2, FIELD3 FROM TABLE1,如果这三列的值在表中都是唯一的。

例如,如果您的名字有多个相同的值,但所选列中的姓和其他信息不同,则该记录将包含在结果集中。

其他回答

它可以通过内部查询来完成

$query = "SELECT * 
            FROM (SELECT field
                FROM table
                ORDER BY id DESC) as rows               
            GROUP BY field";
SELECT *
FROM tblname
GROUP BY duplicate_values
ORDER BY ex.VISITED_ON DESC
LIMIT 0 , 30

在ORDER BY我刚刚把例子放在这里,你也可以在这里添加ID字段

Try

SELECT table.* FROM table 
WHERE otherField = 'otherValue'
GROUP BY table.fieldWantedToBeDistinct
limit x
SELECT * from table where field in (SELECT distinct field from table)

从您的问题措辞中,我了解到您希望为给定字段选择不同的值,并为每个这样的值列出同一行中的所有其他列值。大多数dbms不允许使用DISTINCT或GROUP BY,因为结果是不确定的。

可以这样想:如果field1出现了不止一次,那么将列出field2的值(假设在两行中field1的值相同,但在这两行中field2的值不同)。

然而,你可以使用聚合函数(显式地为你想要显示的每个字段),并使用GROUP BY而不是DISTINCT:

SELECT field1, MAX(field2), COUNT(field3), SUM(field4), ....
FROM table GROUP BY field1