MySQL創(chuàng)建并調(diào)用自定義函數(shù)方式
更新時間:2025年05月24日 09:38:08 作者:壹業(yè)
這篇文章主要介紹了MySQL創(chuàng)建并調(diào)用自定義函數(shù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
創(chuàng)建方法拼接SQL
DELIMITER $$
DROP FUNCTION IF EXISTS genPerson$$
CREATE FUNCTION genPerson(name varchar(20)) RETURNS varchar(50)
BEGIN
DECLARE str VARCHAR(50) DEFAULT '';
SET @tableName=name;
SET str=CONCAT('create table ', @tableName,'(id int, name varchar(20));');
return str;
END $$
DELIMITER ;- (1)DELIMITER $$ 定義結束符。MySQL默認的結束符是分號,但是函數(shù)體中可能用到分號。為了避免沖突,需要另外定義結束符。
- (2)DROP FUNCTION IF EXISTS genPerson$$ 如果函數(shù)genPerson已經(jīng)存在了,就刪除掉。
- (3)CREATE FUNCTION 創(chuàng)建函數(shù)genPerson,函數(shù)的參數(shù)是name,返回值是varchar(50)。
- (4)函數(shù)體放在BEGIN 與 END之間。
- (5)DECLARE 聲明變量,str類型是varchar(50),默認值是空。
- (6)CONCAT連接多個字符串。
- (7)RETURN 返回拼接后的字符串str。
創(chuàng)建方法直接寫SQL
DELIMITER $$
DROP FUNCTION IF EXISTS getNthHighestSalary$$
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
SET N = N -1;
RETURN (
# Write your MySQL query statement below.
select ifnull((select distinct id from user order by id desc limit 1 OFFSET n),null)
);
END調(diào)用方法
select genPerson('student');select getNthHighestSalary(2)
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SQL Server 2005 安裝遇到的錯誤提示和解決方法
在安裝SQL Server 2005時有時會出現(xiàn)意想不到的問題,如IIS,性能計數(shù)器,OWC11,無法配置外圍應用的問題,下面筆者分享一下在安裝SQL Server 2005時常見問題解決方法2014-01-01
Sql查詢MySql數(shù)據(jù)庫中的表名和描述表中字段(列)信息
這篇文章主要介紹了Sql查詢獲取MySql數(shù)據(jù)庫中的表名和描述表中列名數(shù)據(jù)類型,長度,精度,是否可以為null,默認值,是否自增,是否是主鍵,列描述等列信息2017-12-12
.Net Core導入千萬級數(shù)據(jù)至Mysql的步驟
最近在工作中,涉及到一個數(shù)據(jù)遷移功能,從一個txt文本文件導入到MySQL功能。數(shù)據(jù)遷移,在互聯(lián)網(wǎng)企業(yè)可以說經(jīng)常碰到,而且涉及到千萬級、億級的數(shù)據(jù)量是很常見的。今天我們就來談談MySQL怎么高性能插入千萬級的數(shù)據(jù)。2021-05-05
MySQL Left JOIN時指定NULL列返回特定值詳解
我們有時會有這樣的應用,需要在sql的left join時,需要使值為NULL的列不返回NULL而時某個特定的值,比如0。這個時候,用is_null(field,0)是行不通的,會報錯的,可以用ifnull實現(xiàn),但是COALESE似乎更符合標準2013-07-07
MySQL實現(xiàn)差集(Minus)和交集(Intersect)測試報告
MySQL沒有實現(xiàn)Minus和Intersect功能,就像它也沒有實現(xiàn)cube的功能一樣。2014-06-06
MySQL使用binlog2sql工具實現(xiàn)在線恢復數(shù)據(jù)功能
binlog2sql 是大眾點評開源的一款用于解析 MySQL binlog 的工具,根據(jù)不同選項,可以得到原始SQL、回滾SQL等,下面我們就來看看如何使用binlog2sql實現(xiàn)在線恢復數(shù)據(jù)功能吧2025-03-03

