MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

特定の数値の階乗を計算するMySQLストアド関数を作成するにはどうすればよいですか?


以下は、指定された数値の階乗を計算できるストアド関数の例です-

CREATE FUNCTION factorial (n DECIMAL(3,0))
RETURNS DECIMAL(20,0)
DETERMINISTIC
BEGIN
DECLARE factorial DECIMAL(20,0) DEFAULT 1;
DECLARE counter DECIMAL(3,0);
SET counter = n;
factorial_loop: REPEAT
SET factorial = factorial * counter;
SET counter = counter - 1;
UNTIL counter = 1
END REPEAT;
RETURN factorial;
END //

mysql> Select Factorial(5)//
+--------------+
| Factorial(5) |
+--------------+
|          120 |
+--------------+
1 row in set (0.27 sec)

mysql> Select Factorial(6)//
+--------------+
| Factorial(6) |
+--------------+
|          720 |
+--------------+
1 row in set (0.00 sec)

  1. MySQLストアド関数をデータベースから削除するにはどうすればよいですか?

    ALTER ROUTINE権限がある場合は、DROP FUNCTIONステートメントを使用して、MySQLストアド関数を削除できます。その構文は次のようになります- 構文 DROP FUNCTION [IF EXISTS] function_name ここで、function_nameは、データベースから削除する関数の名前です。 例 mysql> DROP FUNCTION if exists Hello1; Query OK, 0 rows affected (0.70 sec) 関数を削除した後、CREATE FUNCTIONステートメントを確認すると、次のようなエラーが発生します

  2. MySQLで日数を数えるにはどうすればよいですか?

    まず、1つの列を日時として、別の列に日が格納されているテーブルを作成しましょう。 mysql> create table DemoTable (    ShippingDate datetime,    CountOfDate int ); Query OK, 0 rows affected (0.52 sec) 以下は、挿入コマンドを使用してテーブルにいくつかのレコードを挿入するためのクエリです。 mysql> insert into DemoTable values('2018-01-31',6); Query OK,