如何解决如何从MySQL函数引用当前列值
我想创建一个用'。'替换中间字符的函数。 (点)列值中的(点)(例如:'something'=>'s ....... g')
问题是我不知道如何在函数体内引用当前列的值,我正在寻找JavaScript中类似this
关键字的内容
DELIMITER$$
CREATE FUNCTION middleDots()
RETURNS --current datatype
BEGIN
--how to reference the current column value?
RETURN --current modified colum value
END$$
DELIMITER;
所以我可以使用这样的功能
SELECT middleDots(col1) AS col1,middleDots(col2) AS col2 FROM soMetable;
查询:
MysqL> SELECT col1,-> INSERT(col1,2,CHaraCTER_LENGTH(col1) - 2,REPEAT('.',CHaraCTER_LENGTH
(col1) - 2)) AS col1,-> INSERT(col2,CHaraCTER_LENGTH(col2) - 2,CHaraCTER_LENGTH(col2) - 2)) AS col2
-> FROM soMetable;
解决方法
您可以通过以下方式创建函数:
DROP FUNCTION IF EXISTS middleDots;
DELIMITER $$
CREATE FUNCTION middleDots(`input` VARCHAR(255))
RETURNS VARCHAR(255)
BEGIN
DECLARE `output` varchar(255) DEFAULT '';
SELECT CONCAT(
LEFT(`input`,1),REPEAT('.',CHARACTER_LENGTH(`input`) - 2),RIGHT(`input`,1)) INTO `output`;
RETURN `output`;
END$$
DELIMITER ;
在此代码功能input
中,参数将用column引用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。