根据多个不同的值返回 mysql 行
Returning mysql rows depending on multiple different values
我有 table,其中包含我的用户信息并具有以下属性:name
、surname
和 date_of_birth
。我想要 return 具有不同 name
和不同 surname
以及不同 date_of_birth
的行。我知道查询类似于 GROUP BY
和 DISTINCT
.
这是一个例子
USERS
id | name | surname | date_of_birth
---+----------+-----------+-----------
1 | Mark | Smith | 01.01.1990.
2 | Ana | Smith2 | 01.01.1991.
3 | Ana | Smith2 | 01.01.1991.
4 | Mark | Smith2 | 01.01.1991.
RESULT
id | name | surname | date_of_birth
---+----------+-----------+-----------
1 | Mark | Smith | 01.01.1990.
3 | Ana | Smith2 | 01.01.1991.
4 | Mark | Smith2 | 01.01.1991.
要选择的所有三个属性中的行必须具有不同的值。
如果你想要 SELECT
除 id
之外的所有内容,那么你可以在 SELECT
中使用 DISTINCT
关键字,就像 @Rocket Hazmat 建议:
SELECT DISTINCT `name`
, `surname`
, `date_of_birth`
FROM `table`
但是如果您还想显示所有重复值之间的第一个(最早,最小值)id
(如您在例如),那么你应该使用下面的查询:
SELECT MIN(`id`)
, `name`
, `surname`
, `date_of_birth`
FROM `table`
GROUP BY `name`
, `surname`
, `date_of_birth`
使用DISTINCT
消除重复行:
SELECT DISTINCT name
, surname
, date_of_birth
FROM USERS
我有 table,其中包含我的用户信息并具有以下属性:name
、surname
和 date_of_birth
。我想要 return 具有不同 name
和不同 surname
以及不同 date_of_birth
的行。我知道查询类似于 GROUP BY
和 DISTINCT
.
这是一个例子
USERS
id | name | surname | date_of_birth
---+----------+-----------+-----------
1 | Mark | Smith | 01.01.1990.
2 | Ana | Smith2 | 01.01.1991.
3 | Ana | Smith2 | 01.01.1991.
4 | Mark | Smith2 | 01.01.1991.
RESULT
id | name | surname | date_of_birth
---+----------+-----------+-----------
1 | Mark | Smith | 01.01.1990.
3 | Ana | Smith2 | 01.01.1991.
4 | Mark | Smith2 | 01.01.1991.
要选择的所有三个属性中的行必须具有不同的值。
如果你想要 SELECT
除 id
之外的所有内容,那么你可以在 SELECT
中使用 DISTINCT
关键字,就像 @Rocket Hazmat 建议:
SELECT DISTINCT `name`
, `surname`
, `date_of_birth`
FROM `table`
但是如果您还想显示所有重复值之间的第一个(最早,最小值)id
(如您在例如),那么你应该使用下面的查询:
SELECT MIN(`id`)
, `name`
, `surname`
, `date_of_birth`
FROM `table`
GROUP BY `name`
, `surname`
, `date_of_birth`
使用DISTINCT
消除重复行:
SELECT DISTINCT name
, surname
, date_of_birth
FROM USERS