有两种解法, 180cm,75kg,27,male 一种是用SUBSTRING_INDEX(字段,'间隔符号',正数为选取右起几个全部数据/负数为选取左起几个全部数据)第几个以间隔符号为基准 1.1


SELECT SUBSTRING_INDEX(profile,',',-1)gender,COUNT(*)number 
FROM user_submit
GROUP BY gender

1.2 这里面-2为(27,male),再来一个正1那就是27

这就是选右起几个全部数据和左起几个全部数据的意识

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(profile,',',-2),',',1)age,
COUNT(*)number
FROM user_submit
GROUP BY age

一是用like模糊选取关键词,别忘了还有if

SELECT IF(profile like '%female','female','male')gender,
COUNT(*)number 
ROM user_submit 
GROUP BY gender

其他截取稳步的函数如substring这个和上面有啥区别?

这个函数不需要间隔符号,直接取 如,就是这个字段从左到右取,从第1个取,取2个字符

substring(cust_name,1,2)

还有字符拼接,concat,concat(字符1,字符2,字符3...)

还有字符大写upper(字符)

字符小写 Lower(字段)

·

1、left(name,4)截取左边的4个字符

列:

SELECT LEFT(201809,4) 年

结果:2018

2、right(name,2)截取右边的2个字符

SELECT RIGHT(201809,2) 月份

结果:09

3、SUBSTRING(name,5,3) 截取name这个字段 从第五个字符开始 只截取之后的3个字符

SELECT SUBSTRING('成都融资事业部',5,3)

结果:事业部

4、SUBSTRING(name,3) 截取name这个字段 从第三个字符开始,之后的所有个字符

SELECT SUBSTRING('成都融资事业部',3)

结果:融资事业部

5、SUBSTRING(name, -4) 截取name这个字段的第 4 个字符位置(倒数)开始取,直到结束

SELECT SUBSTRING('成都融资事业部',-4)

结果:资事业部

6、SUBSTRING(name, -4,2) 截取name这个字段的第 4 个字符位置(倒数)开始取,只截取之后的2个字符

SELECT SUBSTRING('成都融资事业部',-4,2)

结果:资事

注意:我们注意到在函数 substring(str,pos, len)中, pos 可以是负值,但 len 不能取负值。

7、substring_index('www.baidu.com', '.', 2) 截取第二个 '.' 之前的所有字符

SELECT substring_index('www.baidu.com', '.', 2)

结果:www.baidu

8、substring_index('www.baidu.com', '.', -2) 截取第二个 '.' (倒数)之后的所有字符

SELECT substring_index('www.baidu.com', '.', -2)

结果:baidu.com

9、SUBSTR(name, 1, CHAR_LENGTH(name)-3) 截取name字段,取除name字段后三位的所有字符

SELECT SUBSTR('成都融资事业部', 1, CHAR_LENGTH('成都融资事业部')-3)

结果:成都融资