我有一张桌子:
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
答案 0 :(得分:2)
首先,带有select distinct
的{{1}}几乎绝不是正确的做法。据推测,你打算这样的事情:
group by
如果要为所有最低价格设置标记,请使用加入:
SELECT min(price), pn, min(company)
FROM `test`
GROUP BY pn;