如何在SELECT DISTINCT

时间:2018-03-26 07:15:10

标签: mysql sql select distinct

我有一张桌子:

CREATE TABLE `test` (
  `id` int(11) NOT NULL,
  `pn` varchar(40) NOT NULL,
  `price` int(1) NOT NULL,
  `company` varchar(30) NOT NULL,
  `flag` varchar(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我想做的是找到最便宜的商品(pn),我设法做到了:

SELECT DISTINCT min(price), pn, company FROM `test` GROUP BY pn

但我如何用旗帜标记最便宜的商品。我想要所有结果更新表格,设置标志= 1。 怎么做? 是否可以将UPDATE表与SELECT DISTINCT一起使用?

这是一个SQL小提琴: http://sqlfiddle.com/#!9/ea1b3f/9

1 个答案:

答案 0 :(得分:2)

首先,带有select distinct的{​​{1}}几乎绝不是正确的做法。据推测,你打算这样的事情:

group by

如果要为所有最低价格设置标记,请使用加入:

SELECT min(price), pn, min(company)
FROM `test`
GROUP BY pn;