如图数据,能把fc490ca45c00b1249bbe3554a4fdf6fb,f033ab37c30201f73f142449d037028d 根据逗号解析为两条数据
CREATE TABLE USER (NAME VARCHAR(200));
INSERT INTO USER(NAME) VALUES(‘张三,李四,王五’);
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(a.name,‘,’,b.help_topic_id+1),‘,’,-1) AS NAME
FROM USER a,(SELECT 0 help_topic_id UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) b
WHERE b.help_topic_id < (LENGTH(a.name)-LENGTH(REPLACE(a.name,‘,’,‘’))+1);
楼上可行,不过一直搞不懂为啥要数据库取做这个事情
我也觉得,数据库要想尽办法最快的把行或列取出来,接下来的加工操作应该让程序在内存里面做。
是啊,我是很反对,使用数据库函数的,数据库资源本来就有限,程序资源现在相当便宜,k8s后,资源利用率很高了,扩容也方便,搞不懂为何喜欢在数据库做sum \ split 时间计算等
数据库计算对应开发端可以减少逻辑啊
建议程序处理这种逻辑
这个需要提前知道里边到底有几个吧?
一个人管理多个校区的场景存了这样的数据,现在要统计每个学校有多少人,就有了这个需求
统计分析场景,需要解析下到数据中心去
你说的这种场景程序也能做到统计
不是啊,你用来帮助切割的表理论上可以造无限行数的表,行数大于等于你所有的逗号的数量即可
明白了,我用find_inset处理了