Mysql自定義函式

2021-07-31 09:05:19 字數 2437 閱讀 7946

今天寫乙個簡單點的自定義函式muniu:

實現兩個數的加減muniu(a,b,op);

drop function if

exists muniu;

delimiter $$

create function muniu(a int(11),b int(11), op varchar(50)) returns int

begin

declare p varchar(80);

select op into p;

if(trim(p)="+")

then return a+b;

elseif trim(p) = "-"

then return a-b;

endif;end$$

delimiter ;

將如上的**放入mysql中執行,如下所示,實現了自定義的兩個數的加法與減法運算

mysql> drop function if exists muniu;

query ok, 0 rows affected (0.00 sec)

mysql> delimiter $$

mysql> create function muniu(a int(11),b int(11), op varchar(50)) returns int

-> begin

-> declare p varchar(80);

-> select op into p;

-> if(trim(p)="+")

-> then return a+b;

-> ***elseif trim = "-"#這裡寫錯了***

-> then return a-b;

-> end if;

-> end$$

query ok, 0 rows affected (0.00 sec)

mysql> delimiter ;

mysql>

mysql> select muniu(3,5," + ");

+--------------------+

| muniu(3,5," + ") |

+--------------------+

| 8 |

+--------------------+

1 row in set (0.00 sec)

mysql> select muniu(8,2," - ");

error 1054 (42s22): unknown column 'trim' in 'field list'

mysql>

mysql>

mysql>

mysql>

mysql> drop function if exists muniu;

query ok, 0 rows affected (0.00 sec)

mysql> delimiter $$####修改之後重新執行一遍

mysql> create function muniu(a int(11),b int(11), op varchar(50)) returns int

-> begin

-> declare p varchar(80);

-> select op into p;

-> if(trim(p)="+")

-> then return a+b;

-> elseif trim(p) = "-"

-> then return a-b;

-> end if;

-> end$$

query ok, 0 rows affected (0.00 sec)

mysql> delimiter ;

mysql>

mysql>

mysql> select muniu(3,5," +");

+------------------+

| muniu(3,5," +") |

+------------------+

| 8 |

+------------------+

1 row in set (0.00 sec)

mysql> select muniu(8,2,"- ");

+------------------+

| muniu(8,2,"- ") |

+------------------+

| 6 |

+------------------+

1 row in set (0.00 sec)

自定義函式的意義:

官方函式是有限的,特殊的需求需要自定義函式來實現

mysql自定義函式優點 MySQL自定義函式

在使用 mysql 的過程中,mysql 自帶的函式可能完成不了我們的業務需求,這時候就需要自定義函式。自定義函式是一種與儲存過程十分相似的過程式資料庫物件。它與儲存過程一樣,都是由 sql 語句和過程式語句組成的 片段,並且可以被應用程式和其他 sql 語句呼叫。自定義函式與儲存過程之間存在幾點區...

mysql自定義函式命名 MySQL自定義函式

在使用 mysql 的過程中,mysql 自帶的函式可能完成不了我們的業務需求,這時候就需要自定義函式。自定義函式是一種與儲存過程十分相似的過程式資料庫物件。它與儲存過程一樣,都是由 sql 語句和過程式語句組成的 片段,並且可以被應用程式和其他 sql 語句呼叫。自定義函式與儲存過程之間存在幾點區...

mysql 自定義函式

今天要做乙個排序,有中文和英文的,資料庫採用utf8編碼,排除來的不對,所以需要將中文轉換成中文的第乙個字母,然後來排序 先小小的看一下mysql的自定義函式 drop function if exists fntable 如果存在就刪除 delimiter 函式開始 create function...