mysql两张表一起计数_mysql – 如何在两个表之间拆分,计数和插入?

您可以在SQL中执行此操作,但它需要一些技巧.您可以通过执行以下操作来提取列表中字符串的第n个元素:

select reverse(substring_index(reverse(substring_index(list, ', ', n)), ',', 1))

最里面的substring_index()检索到第n个项目的所有内容.然后反转字符串并获取第一个项目.最后,再次反转以撤消另一个反向.

第二个技巧是进行交叉连接以引入数字列表.您的列表最多包含3个元素,因此列表中最多需要3个元素.示例查询通过使用union all将数字组合在一起来完成此操作;你可能有某种数字表.

最后一步是汇总数据并总结:

select tag, SUM(count)

from (select reverse(substring_index(reverse(substring_index(group, ', ', n.n)), ',', 1)) as tag, count

from t cross join

(select 1 as n union all select 2 union all select 3

) n

where n.n <= 1+(length(GROUP) - length(replace(group, ',', '')))

) t

group by tag

我没有反驳查询中的所有内容.通常,在SQL中使用像count或group这样的保留字的列是不好的做法.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值