我有一个名为fee
的MySQL列名。里面fee
值是一样的东西: Jan,Feb,Mar
或Jan,Feb
MySQL列中的月份名称
...这意味着到三月的费用一月支付(1至2月收取的第二个示例)。
我该如何计算这些费用已支付的月数?即。对于第一个例子,我期望在第二个例子中得到3和2。
我有一个名为fee
的MySQL列名。里面fee
值是一样的东西: Jan,Feb,Mar
或Jan,Feb
MySQL列中的月份名称
...这意味着到三月的费用一月支付(1至2月收取的第二个示例)。
我该如何计算这些费用已支付的月数?即。对于第一个例子,我期望在第二个例子中得到3和2。
IF月由3个字符总是代表,也许你可以使用
SELECT FLOOR((length(fee)+1)/4) FROM table_name;
我们记为ñ个月的数量,注意逗号的数量比ň少1,因为在字符串的末尾没有一个。因此,该字段的长度即'费用'可以表示为3 * n +(n-1),表示为N,所以我们可以将1加到N并除以4。最接近的整数。在这种情况下可以将其删除。
SELECT length(fee)+1)/4 FROM table_name;
将得到正确答案,length()是返回字符串长度的函数。
您可以拆分字符串并计算项目的数量。然而,我认为一个更好的设计会跟踪支付交易在一个单独的表中,外键连接回该表,并且只查询与主键相关的记录数 – 2013-03-28 03:59:40