MySQL SUBSTRING函数@TOC
用法:
SUBSTRING(s,index,len)
返回从字符串s的index位置其len个字符
s -> 字符串 123456
index -> 2 and len ->2 -------- “23”
index-> -2 and len->2 ---------“56”
–分支
SUBSTRING_INDEX
s->字段 PROFILE
(180cm,75kg,27,male)
index -> “,” and len->-1 ---------male
index -> “,” and len->1 ---------180cm
SUBSTRING_INDEX(profile,“,”,-2
) -> 27,male
联想
可能类似正则拆分字符串为数组
String[] split(正则):按照某种规则进行拆分
----------特殊字符需要转义
----------返回数组
其他操作
(利用
String replaceFirst(正则,value):替换第一个匹配部分
String replaceAll(正则, value):替换所有匹配部分
去掉杂七腊八的 再拆
)
题
统计每种性别的人数
drop table if exists user_submit;
CREATE TABLE `user_submit` (
`id` int ,
`device_id` int ,
`profile` varchar(100) ,
`blog_url` varchar(100)
);
INSERT INTO user_submit VALUES(1,2138,'180cm,75kg,27,male','http:/url/bisdgboy777');
INSERT INTO user_submit VALUES(1,3214,'165cm,45kg,26,female','http:/url/dkittycc');
INSERT INTO user_submit VALUES(1,6543,'178cm,65kg,25,male','http:/url/tigaer');
INSERT INTO user_submit VALUES(1,4321,'171cm,55kg,23,female','http:/url/uhsksd');
INSERT INTO user_submit VALUES(1,2131,'168cm,45kg,22,female','http:/url/sysdney');
题目:现在运营举办了一场比赛,收到了一些参赛申请,表数据记录形式如下所示,现在运营想要统计每个性别的用户分别有多少参赛者,请取出相应结果
SELECT SUBSTRING_INDEX(PROFILE,",",-1) gender,COUNT(*) number
FROM user_submit
GROUP BY gender;
题目:现在运营举办了一场比赛,收到了一些参赛申请,表数据记录形式如下所示,现在运营想要统计每个年龄的用户分别有多少参赛者,请取出相应结果
select SUBSTRING_INDEX(SUBSTRING_INDEX(profile,",",-2),",",1) age ,count(1)number
from user_submit
GROUP BY age