MySQL自定义函数
Posted panzer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 |
+----------+------------------+
以上是关于MySQL自定义函数的主要内容,如果未能解决你的问题,请参考以下文章