MySQL列中的月份名称

MySQL列中的月份名称,mysql,Mysql,我有一个MySQL列名叫fee。fee中的值类似于: 1月、2月、3月或1月、2月 。。。这意味着支付了1月至3月的费用(第二个示例支付了1月至2月的费用) 我如何计算这些费用已支付的月数?例如,对于第一个示例,对于第二个示例,我希望得到3和2。如果月份总是用3个字符表示,也许您可以使用 SELECT FLOOR((length(fee)+1)/4) FROM table_name; 我们将月数表示为n,注意逗号的数量比n少1,因为字符串末尾没有一个逗号。所以这个字段的长度,也就是“fee”,

我有一个MySQL列名叫
fee
fee
中的值类似于:
1月、2月、3月
1月、2月

。。。这意味着支付了1月至3月的费用(第二个示例支付了1月至2月的费用)


我如何计算这些费用已支付的月数?例如,对于第一个示例,对于第二个示例,我希望得到3和2。

如果月份总是用3个字符表示,也许您可以使用

SELECT FLOOR((length(fee)+1)/4) FROM table_name;
我们将月数表示为n,注意逗号的数量比n少1,因为字符串末尾没有一个逗号。所以这个字段的长度,也就是“fee”,可以表示为3*n+(n-1),表示为n,所以我们可以将1和n相加,然后除以4。地板向下取整以获得最接近的整数。在这种情况下可以将其删除

SELECT length(fee)+1)/4 FROM table_name;

要得到正确答案,length()是一个返回字符串长度的函数。

如果您的月份总是用3个字符表示,因为逗号的数量比实际月份的数量少1是的!如果你能解释一下你做了什么,我将不胜感激。我对这个有点陌生。谢谢。您可以拆分字符串并计算项目数。但是,我认为更好的设计是在一个单独的表中跟踪支付交易,外键链接回该表,并且只查询与主键关联的记录数