Metは、今日は、MySQL関数を作成することはできません

今日、あなたは、Navicatはしてクエリを関数を作成することはできません

MySQLの機能を作成することはできませんが、機能が有効になっていません。

  1. MySQLの> '%FUNC%' のような変数を表示。  
  2. + --------------------------------- + ------- +  
  3. | 変数名| バリュー|  
  4. + --------------------------------- + ------- +  
  5. | log_bin_trust_function_creators | OFF |  
  6. + --------------------------------- + ------- +  
  7. セット内の1行(0.00秒)  
  8.  
  9. MySQLの>セットグローバルlog_bin_trust_function_creators = 1;  
  10. クエリOK、影響を受けた0行(0.00秒)  
  11.  
  12. MySQLの> '%FUNC%' のような変数を表示。  
  13. + --------------------------------- + ------- +  
  14. | 変数名| バリュー|  
  15. + --------------------------------- + ------- +  
  16. | log_bin_trust_function_creators | ON |  
  17. + --------------------------------- + ------- +  
  18. セット内の1行(0.00秒)のMySQL> 

==================

ここでは、2つの関数を記述し、文字列関数は、削除文字を繰り返すカンマで区切られています

DEFINERのCREATE = `` localhost` FUNCTION `str_str_unique`(strのテキスト、STR1テキスト)@ root`は、テキスト文字セットがUTF8 RETURNS
BEGIN
#str要处理的字符STR1分隔符
#功能:处理字符串中重复的字符
  宣言STRI TEXTを。
  私は1デフォルトのint宣言。
  LEN int型のDEFAULT 0を宣言する。
  TMP TEXTのデフォルト「」を宣言します。
  tmp_str VARCHAR(255)デフォルト''を宣言します。
  サイトのint型のDEFAULT 0を宣言する。
  セットLEN = str_str_count(STR、0009)。
  繰り返し
    セットtmp_str = SUBSTRING_INDEX(SUBSTRING_INDEX(STR、STR1、I)、STR1、-1)。
    集合サイト= FIND_IN_SET(tmp_str、TMP);
    もし(サイト= 0とtmp_strがnullとtmp_strない= ''!)そして、
      もし(長さ(TMP)> 0)を
        セットTMP = CONCAT(TMP、STR1、tmp_str)。
      他の
        セットTMP = CONCAT(TMP、tmp_str)。
      場合は終了。
    場合は終了。
    私+ 1 =設定します。
  I> LEN + 2エンドリピートまで。
  STRI = TMPを設定します。
  STRIを返します。
終わり

DEFINER = ``% `` FUNCTION str_str_count`(strのはvarchar(255)、STRI VARCHAR(20))@ root`がint(12)を返すのCREATE
BEGIN

  #デリミタ測定数字列
  DECLARE総INT(20)と、
  LENGTH(STR)を選択- LENGTH(REPLACE(STR、STRI、 ''))合計INTO;
  RETURN合計;
END

 

おすすめ

転載: www.cnblogs.com/xmnote/p/12066115.html