MySQL自定義函數


 set names gbk;
DATE_FORMAT(publish_datetime,'%Y-%m-%d');

select date_format(now(),'%Y年%m月%d日 %H時:%i分:%s秒');

創建一個現實時間的函數:

 create function f1() returns varchar(30) return  date_format(now(),'%Y年%m月%d日 %H時%i分%s秒');

 調用這個函數:

 

select f1();

 

CONCAT()函數用於將多個字符串連接成一個字符串,是最重要的mysql函數之一

 

CREATE TABLE employees  
(  
    employee_id INT(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,  
    employee_name VARCHAR(50) NOT NULL,  
    employee_sex VARCHAR(10) DEFAULT '',  
    hire_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    employee_mgr INT(11),  
    employee_salary FLOAT DEFAULT 3000,  
    department_id INT(11)  
); 

 

 

INSERT INTO employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) VALUES ('David Tian','',10,7500,1);  
INSERT INTO employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) VALUES ('Black Xie','',10,6600,1);  
INSERT INTO employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) VALUES ('Moses Wang','',10,4300,1);  
INSERT INTO employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) VALUES ('Rena Ruan','',10,5300,1);  
INSERT INTO employees(employee_name,employee_sex,employee_mgr,employee_salary,department_id) VALUES ('Sunshine Ma','',10,6500,2);

創建函數-根據ID獲取員工姓名與員工工資

DELIMITER //  
CREATE FUNCTION GetEmployeeInformationByID(id INT)  
RETURNS VARCHAR(300)  
BEGIN  
    RETURN(SELECT CONCAT('employee name:',employee_name,'---','salary: ',employee_salary) FROM employees WHERE employee_id=id);  
END//  
DELIMITER ;  
SELECT GetEmployeeInformationByID(1) ;

 

CAST()函數的參數是一個表達式,它包括用AS關鍵字分隔的源值和目標數據類型。

以下例子用於將文本字符串'12'轉換為整型: SELECT CAST('12' AS int)

 

 使用函數CONCAT_WS()指定參數之間的分隔符

SELECT CONCAT_WS('_',id,name) AS con_ws FROM info LIMIT 1;返回結果為
+----------+
| con_ws   |
+----------+
| 1_BioCyc |
+----------+

GROUP_CONCAT函數返回一個字符串結果,該結果由分組中的值連接組合而成。

語句 SELECT locus,GROUP_CONCAT(id) FROM info WHERE locus IN('AB086827','AF040764') GROUP BY locus; 的返回結果為
+----------+------------------+
| locus    | GROUP_CONCAT(id) |
+----------+------------------+
| AB086827 | 1,2              |
| AF040764 | 23,24            |
+----------+------------------+

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM