mysql数据库语句,如果我要更新某个数据类型的总条数,同时还得查询

发布于 2022-09-12 23:36:57 字数 851 浏览 17 评论 0

我是这样写的:
一、
UPDATE computertype SET typecount= SELECT COUNT(*) AS COUNT FROM computertype WHERE TYPE = '计算机网络基础学测题库'

意思是,我想更新 typecount的数据,但同时我得查询出这个TYPE某个数据的总条数给 typecount

这个是要怎么写?


二、
另外,我还想把TYPE也自动写入,即:

UPDATE computertype SET typecount= SELECT COUNT(*) AS COUNT FROM computertype WHERE TYPE = SELECT DISTINCT TYPE FROM computertype

这个又要怎么写?

求大佬指点一二,谢谢!


第一个问题解决了,谢谢
第二个问题意思是:

SELECT DISTINCT TYPE FROM computertype 这个语句,得到的是:5G初级题库(新)、计算机网络基础学测题库、02141计算机网络技术。 这个语句是得到不重复的type数据。

我想进行结合。

我是这样写的,就是想能不能类似一种遍历的方式,把这个不同类型的typecount数据给更新了

UPDATE computertype SET typecount = (SELECT FROM (SELECT COUNT() AS COUNT FROM computertype WHERE TYPE = SELECT DISTINCT TYPE FROM computertype ) AS COUNT) WHERE TYPE = SELECT DISTINCT TYPE FROM computertype

但是报错了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

迷离° 2022-09-19 23:36:57

第一个:

update computertype set typecount = (select * from (SELECT COUNT(*) AS COUNT FROM computertype WHERE TYPE = '计算机网络基础学测题库') as count)

第二个

UPDATE computertype
SET typecount = (SELECT *
                 FROM (SELECT COUNT() AS COUNT
                       FROM computertype
                       WHERE TYPE =
                       (select * from (SELECT DISTINCT TYPE
                                       FROM computertype) as a)) AS COUNT)
WHERE TYPE = (select * from (SELECT DISTINCT TYPE
                             FROM computertype) as b)

在 mysql 里面,右值如果是 (select * from table) 语句,必须符合 (select * from (select * from table) as x) 的形式。

演多会厌 2022-09-19 23:36:57

没读懂需求,猜你是需要这样吧

UPDATE `computertype` a,
(
    SELECT `TYPE`, COUNT(1) AS `cnt`
    FROM `computertype`
    GROUP BY `TYPE`
) b
SET a.`typecount` = b.`cnt`
WHERE a.`TYPE` = b.`TYPE`;
︶ ̄淡然 2022-09-19 23:36:57
#直接连表更新操作即可
UPDATE computertype AS ct,
 (
    SELECT
        `type`,
        count(*) AS `count`
    FROM
        computertype
    GROUP BY
        `type`
) AS tc
SET ct.typecount = tc.`count`
WHERE
    ct.`type` = tc.`type`;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文