2

という名前の MySQL カラムがありますfee。内部の値feeは次のようなものです: Jan,Feb,MarまたはJan,Feb

... これは、1 月から 3 月の料金が支払われたことを意味します (2 番目の例では 1 月から 2 月が支払われました)。

これらの料金が支払われた月数をどうやって数えますか? すなわち。最初の例では、2 番目の例では 3 と 2 が得られると予想されます。

4

1 に答える 1

1

月が常に3文字で表される場合、おそらく使用できます

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

月数をnで示します。文字列の末尾にコンマがないため、コンマの数はnよりも 1 少ないことに注意してください。したがって、このフィールドの長さ、つまり 'fee' は 3*n + (n-1) として表すことができ、 Nとして表すことができるため、 Nに 1 を加えて 4 で割ることができます。下限は、最も近い整数を取得するために切り捨てられます。この場合、どれを削除できますか。

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

length() は文字列の長さを返す関数です。

于 2013-03-21T10:35:28.907 に答える