需求:mysql的一张表中的某一字段值前缀相似,以分隔符_区分不同版本,现要求根据前缀进行分组
如下图所示:
model_key这一列用来存储模型的key值,模型可能进行升级、修改等操作,所以model_key会做相应改变,具体规则就是在初始的key值后面加_,并且拼上版本信息,现在要根据model_key这一列先根据分隔符_分割出前缀,再根据前缀进行分组,实现的sql如下:
SELECT b., SUBSTRING_INDEX( model_key, ‘_’, 1 ) AS spiltkey FROM act_de_model b
其中用到了SUBSTRING_INDEX函数,第一个参数表示分割的字段,第二个参数表示分割符,第三个参数表示取第几个,本实例取第一个所以设置为1,执行sql语句则可以将model_key分割出来的数据生成新的一列spiltkey,此时结果就会出现根据条件生成的列,如下图所示:
查询这个结果后,再根据spiltkey进行分组就容易多了,sql如下:
select A. from (select a.* ,SUBSTRING_INDEX(model_key,’_’,1) as spiltkey from act_de_model a) A group BY A.spiltkey;
即可完成分组。
mysql表切分并作为查询条件的实现
最新推荐文章于 2024-02-06 14:51:50 发布