MySQLカスタム関数の簡単な使用例

MySQLカスタム関数の簡単な使用例

この記事では、例を使用して MySQL カスタム関数の使用方法を説明します。ご参考までに、詳細は以下の通りです。

まずは簡単なものから始めましょう。「2009-06-23 00:00:00」形式の日付時刻を「2009 June 23, 00:00」形式の日付時刻に変換する関数を作成します。

区切り文字 $$
`sp_test`.`getdate`$$ が存在する場合は関数を削除します
CREATE FUNCTION `sp_test`.`getdate`(gdate datetime) はvarchar(255)を返します。
始める
x VARCHAR(255) DEFAULT '' を宣言します。
SET x = date_format(gdate,'%Y 年 %m 月 %d 日 %h 時間 %i 分 %s 秒');
x を返します。
終了 $$
区切り文字 ;

分析:

最初の文は終了識別子を定義します。MySQL はデフォルトで SQL 文の終了識別子としてセミコロンを使用しますが、関数本体内でセミコロンが使用されると、デフォルトの SQL 終了識別子と競合します。そのため、最初に別のシンボルを SQL 終了識別子として定義する必要があります。

2 番目の文は、関数が既に存在する場合は削除し、sp_test はデータベースの名前、関数はデータベースに関連付けられ、getdate は関数の名前です。

3 番目の文は関数を作成します。括弧には、パラメータの名前と型が含まれます。RETURNS は、関数の戻り値の型を定義します。

関数本体は BEGIN END の間に配置する必要があります。

DECLARE は、関数本体で変数を定義するために使用されます。ここでは、デフォルトでは空である変数 x が定義されています。次に、SET を使用して変数 x に値を割り当てます。

RETURN は戻り値です。ここでは、変数 x が返されます。x の型は、3 番目の文で定義された戻り値の型と一致している必要があります。

電話:

getdate('2009-06-23 00:00:00')を選択します。

'2009-06-23 00:00:00'を返します

支店構造

区切り文字 $$
`sp_test`.`cutString` が存在する場合は関数を削除します $$
CREATE FUNCTION `sp_test`.`cutString`(s VARCHAR(255),n INT) 戻り値 varchar(255)
始める
IF(ISNULL(s)) の場合は '' を返します。
ELSEIF CHAR_LENGTH(s)<n の場合、s を返します。
ELSEIF CHAR_LENGTH(S)=n の場合、'equal' を返します。
それ以外の場合は、CONCAT(LEFT(s,n),'...') を返します。
終了の場合;
終了 $$
区切り文字 ;

分析:

これは文字列を抽出する関数です。2 つのパラメータがあり、1 つは文字列 s、もう 1 つは数値 n です。文字列 s の最初の n ビットを保持します。文字列のビット数が n より少ない場合は、文字列 s を返します。n より大きい場合は、最初の n ビットとそれに続く... を返します。

電話:

SELECT cutString('abcdefghijklmnopqrstuvwxyz',5);

'abced...'を返します

ループ構造

区切り文字 $$
`sp_test`.`morestar`$$ が存在する場合は関数を削除します
CREATE FUNCTION `sp_test`.`morestar`(n INT) はtextを返します
始める
i INT DEFAULT 0 を宣言します。
DECLARE s TEXT DEFAULT '';
myloop:ループ
i=i+1 を設定します。
SET s = CONCAT(s,'*');
i > n の場合、myloop を終了します。
終了の場合;
ループ終了 myloop;
戻り値:
終了 $$
区切り文字 ;

分析: n * を生成します。

電話:

morestar(5)を選択します。

戻る'*****'

MySQL 関連のコンテンツに興味のある読者は、次のトピックを確認してください: 「MySQL 共通関数の概要」、「MySQL ログ操作スキルの概要」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキルの概要」、および「MySQL データベース ロック関連スキルの概要」。

この記事が皆様のMySQLデータベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • MySQLカスタム関数CREATE FUNCTIONの例
  • MySQL でのカスタム関数とストアド プロシージャの作成に関する詳細な説明
  • MySQL 中国語文字変換ピンインカスタム関数と使用例 (最初の単語の最初の文字)
  • MySQLカスタム関数についての簡単な説明
  • MySQL でカスタム関数を使用して文字列から数値を抽出する方法
  • MySQLでカスタム関数を作成する際の問題
  • MySQL ストアド関数(カスタム関数)の定義と使用方法の詳細な説明
  • 正の整数かどうかを判断するMYSQLカスタム関数の例コード
  • MySQLカスタム関数とストアドプロシージャの詳細な説明
  • MySQLはカスタム関数を使用して親IDまたは子IDを再帰的に照会します
  • MySQLカスタム関数の原理と使用法の分析

<<:  Windows 10 での Hyperledger Fabric 1.4 環境構築プロセスの図

>>:  JavaScript の Strict モードの詳細な説明

推薦する

MySQLデータベースのトランザクションとロックの詳細な分析

目次1. 基本概念酸3.自動コミット4. トランザクション分離レベル5. 同時実行の一貫性の問題6....

Docker 構成コンテナの場所とヒントのまとめ

Docker の使用に関するヒント1. 停止したDockerコンテナをすべてクリーンアップする停止し...

ウェブサイトのフッター沈下現象に対する3つの解決策を詳しく解説

背景多くのウェブサイトのデザインは、一般的にコンテンツ+フッターの2つの部分で構成されています。コン...

MySQL学習エンジンの詳細な説明、説明、権限

エンジン導入InnodbエンジンInnodb エンジンは、データベース ACID トランザクションを...

MySQLデータベースのロック機構の分析

同時アクセスの場合、非反復読み取りやその他の読み取り現象が発生する可能性があります。高い同時実行性に...

JSコードコンパイラMonacoの使い方

序文私が必要としているのは、構文の強調表示、関数プロンプト、自動行折り返し、およびコードの折りたたみ...

JS でオブジェクトを作成する 4 つの方法

目次1. リテラル値でオブジェクトを作成する2. 新しいキャラクターを使ってオブジェクトを作成する3...

VUE ユニアプリテンプレート構文についての簡単な説明

1.v-bind(略称:)コンポーネント プロパティのデータで定義されたデータ変数を使用するか、コン...

MySQL InnoDB ReplicaSet の簡単な紹介

目次01 InnoDBレプリカセットの紹介02 InnoDBレプリカセットの制限03 導入前に知って...

SQL Server 2019 Always On クラスターの Docker デプロイメントの実装

目次Docker デプロイメント Always on クラスターDockerをインストールする建築関...

MySQL チュートリアル: サブクエリの例の詳細な説明

目次1. サブクエリとは何ですか? 2. サブクエリはどこに表示されますか? 3. Whereサブク...

show processlist コマンドによる MySQL パフォーマンス検査の説明

show processlist コマンドは非常に便利です。MySQL の実行が 50% 以上になる...

MySQL 5.6.22 のインストールと設定方法のグラフィックチュートリアル

このチュートリアルでは、MySQL5.6.22のインストールと設定方法の具体的なコードを参考までに共...

JavaScriptは入力ボックスコンポーネントを実装します

この記事では、入力ボックスコンポーネントを手動で実装するための具体的なコードを参考までに紹介します。...

DockerコンテナでJupyterノートブックを設定する方法

Jupyter ノートブックは、主に Python コードの記述、より具体的にはディープラーニング開...