MySQL の一般的な数値関数

初め

ceil(x): 切り上げ

Rounding は、その名前が示すとおり、丸めることを意味します。

四捨五入とは、小数点以下の桁が0でない限り、整数1ずつ切り上げることを意味します。

ケース 1:

select ceil(9.2);

分析:

9.2 1 つの整数 (10) に切り上げます。

検索結果:   

ケース 2:

select ceil(9.0);

分析:

9.0 の小数点以下の桁は 0 です。切り上げはできません。整数の位の 9 に直接四捨五入されます。

検索結果:  

注: 小数点以下の桁数に関係なく、0 でない限り、1 桁に切り上げられます (例: ceil(9.229))。切り上げ後も 10 になります。

二番目

階数(x): 切り捨て

切り捨てとは、小数部分を直接削除し、直接整数に四捨五入することを意味します。

場合:

select floor(8.9);

分析:

8.9 小数点以下を削除すると 9 になります。

検索結果:   

注: 小数点以下の桁数が何桁であっても、四捨五入されるだけです。たとえば、floor(2.33333) の場合、四捨五入後も 2 になります。

第3

mod(x, y): モジュロ

前回の記事で述べたように、ガイドラインは次のとおりです。

mod 関数の法を取得する方法_^O^——のブログ-CSDN blog_mod modulo 演算

第4

rand(): 0 から 1 までの乱数を生成します。

select rand();

検索結果:    

五番目

round(x, y): 小数点以下 y 桁を保持したまま、x の四捨五入された値を求めます。

四捨五入の意味は、小数点以下の最後の値を取る、仮数部の桁数が 4 桁または 4 桁未満の場合は仮数部を削除、仮数部の桁数が 5 桁または 5 桁より大きい場合は仮数部を削除します。 、その前に 1 桁を追加します。ビットは 1 桁ずつ切り上げられます。

ケース 1:

select round(2.33,1);

分析:

x 桁に丸める: 仮数は 3 です。3 が 4 より小さい場合は、それを破棄します。

小数点以下第 1 位を四捨五入すると 2.3 になります。

検索結果:

ケース 2:

select round(2.45,1);

分析:

x 桁に丸める: 仮数は 5、1 桁進み、4 は 5 になります。

小数点以下第 1 位を四捨五入すると 2.5 になります。

検索結果:

包括的なケース:

MySQL 関数を使用して、6 桁のランダムな検証コードを生成します。

最初の書き方:

1. まずroundを使用して乱数を生成します。

select round();

 検索結果:

2. 次に、subtring 関数を使用して 6 桁のランダムな検証コードを傍受し、取得します。

select subtring(round() , 3 , 6);

検索結果: 

2 番目の書き方:

rand() * 100 は、小数点の前に 2 桁または 1 桁をランダムに生成します。

rand() * 1000 は、小数点の前に 3 桁または 2 桁をランダムに生成します。

……

...

1. 6 桁を生成したい場合は、 rand() * 1000000 を使用します。

select round() * 1000000;

検索結果: 

2. 次に、round を使用して乱数を四捨五入し、小数点以下 0 桁を保持します。

select round(rand() * 1000000 , 0);

検索結果: 

ただし、rand() は 0 から 1 までの数値を生成し、0 と 1000000 が乗算される可能性が非常に高いため、6 桁の数値をランダムに生成するだけでなく、5 桁の数値も生成する場合があります。 

3. したがって、別の関数 lpad または rpad を使用して、乱数を左​​詰めまたは右詰めにする必要があります。ここでは左詰めと 0 詰めを使用し、6 桁のランダムな検証コードも見つけました。

select lpad(round(rand() * 1000000 , 0),6,'0');

検索結果:  

最後に、私が言いたいのは、すべての道はローマに通ず、要件が満たされていれば、どの方法を使用しても問題ではないということです。

以上。

おすすめ

転載: blog.csdn.net/weixin_62332711/article/details/128669098