我有一个像这样的简单表格:
id grouped type_error
-- ------- ------------------
1 1-0 TL
2 1-0 TL
3 1-0 TL
4 1-1 TL
5 1-2 TL
6 1-2 TL
7 1-3 TL
8 1-3 TL
9 1-3 TL
10 1-3 TL
我只想将表格更新为这样:
id grouped type_error
-- ------- ------------------
1 1-0 FN
2 1-0 FN
3 1-0 FN
4 1-1 TL
5 1-2 TL
6 1-2 TL
7 1-3 FN
8 1-3 FN
9 1-3 FN
10 1-3 FN
我想更新分组计数最小 3 最大 5 的位置:
我只是有这样的查询:
update errorlog set type_error = 'FN' where id in
(select group_concat(id) as ids from errorlog where ids > 2 group by grouped)
但是,它不起作用。我收到错误
Unknown column 'ids' in 'where clause'
最佳答案
您可以使用以下解决方案,并进行子选择:
UPDATE errorlog SET type_error = 'FN'
WHERE grouped IN (
SELECT * FROM (
SELECT grouped
FROM errorlog
GROUP BY grouped
HAVING COUNT(id) BETWEEN 3 AND 5
)x
);
Here you can find a working demo: http://sqlfiddle.com/#!9/311a01/1/0
关于Mysql 更新并选择最小/最大计数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41679794/