MySQL根据where子句选择具有相同字段的多行中的一行

时间:2017-10-27 13:55:21

标签: mysql

我需要能够选择我的整个表格,但是如果存在重复的ID,则只根据不同字段中的数据选择其中一个。

例如,如果我的表看起来像这样

enter image description here

我想选择所有行,但如果有2个相同的ID,请仅选择Billing作为地址类型的行。

2 个答案:

答案 0 :(得分:2)

你可以这样做:

select * from Table1 
where (AddressType='Billing') or
(AddressType='Shipping' and ID not in (select ID from Table1 where AddressType='Billing'))
order by ID

<强>解释

第一个条件是仅过滤Billing个地址类型。

第二个条件是过滤Shipping没有Billing且ID相同的地址类型。

结果SQL Fiddle

答案 1 :(得分:0)

试试这个 -

SELECT *, ADDRESS
FROM (SELECT MIN(ID), ADDRESSTYPE
      FROM YOUR_TABLE
      GROUP BY ADDRESS) X