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 モードの詳細な説明

推薦する

CSS の border 属性と display 属性の使い方の簡単な分析

境界プロパティの概要borderプロパティは要素の境界を設定します。境界線の3要素は、太さ、線の種類...

ズームインとズームアウトの閉じるボタンを実現する CSS (サンプル コード)

この効果はブラウザ ページで最もよく見られます。まずは効果の画像をご覧ください。 上の図に示すように...

JS クロスドメイン ソリューション React 構成 リバース プロキシ

クロスドメインソリューションjsonp (get をシミュレート) CORS (クロスオリジンリソー...

ローカル写真をアップロードする前にプレビューコード例を実装するための HTML5 と jQuery

HTML5 と jQuery はアップロード前にローカル画像のプレビューを実装しており、その効果は...

CentOS6.5にpython3.7をインストールする詳細な手順

1. Python 3をダウンロードする https://www.python.org/ftp/py...

Tomcat 例外の解決方法 (リクエスト ターゲットに無効な文字が見つかりました。有効な文字は RFC 7230 および RFC 3986 で定義されています)

1. シナリオ表示Tomcat ログに次の例外情報が時々報告されます。何が起こっているのでしょうか...

InnoDB テーブルの BLOB 列と TEXT 列のストレージ効率を最適化します。

まず、MySQL InnoDB エンジンのストレージ形式に関する重要なポイントをいくつか紹介します。...

MySQLバッチは特定のフィールドのスペースを削除します

Mysql で特定のフィールドからスペースを一括削除する方法はありますか?文字列の前後のスペースだけ...

Ubuntu Server のターミナルのウェルカム メッセージで広告を無効にする方法

最新の Ubuntu Server バージョンを使用している場合、ようこそメッセージに、Ubuntu...

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

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

MySQL サービスを起動できない問題の解決策を含む MySQL 5.7.17 インストール チュートリアル

.net 開発に関しては、Microsoft の SQL Server データベースに精通しており、...

Dockerはmysqldumpコマンドを使用してプロジェクト内のmysqlデータをバックアップおよびエクスポートします。

mysqldump コマンドはじめに: データベースバックアッププログラム形式: mysqldum...

MySQL シリーズ 7 MySQL ストレージ エンジン

1. MyISAM ストレージエンジン欠点:トランザクションはサポートされていません最小粒度ロック:...

Reactはルーティングを使用してログインインターフェースにリダイレクトします

前回の記事では、webpack と react 環境を設定した後、ログイン インターフェースとその後...

JavaScript PromiseとAsync/Awaitの詳細な説明

目次概要4つの例例1: 誕生日で説明する約束の基本例2: 数字当てゲーム例3: Web APIから国...