今日、あなたは、Navicatはしてクエリを関数を作成することはできません
MySQLの機能を作成することはできませんが、機能が有効になっていません。
- MySQLの> '%FUNC%' のような変数を表示。
- + --------------------------------- + ------- +
- | 変数名| バリュー|
- + --------------------------------- + ------- +
- | log_bin_trust_function_creators | OFF |
- + --------------------------------- + ------- +
- セット内の1行(0.00秒)
- MySQLの>セットグローバルlog_bin_trust_function_creators = 1;
- クエリOK、影響を受けた0行(0.00秒)
- MySQLの> '%FUNC%' のような変数を表示。
- + --------------------------------- + ------- +
- | 変数名| バリュー|
- + --------------------------------- + ------- +
- | log_bin_trust_function_creators | ON |
- + --------------------------------- + ------- +
- セット内の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