阅读量:0
在MySQL存储过程中,没有内置的LEFT_PAD()
函数
DELIMITER $$ CREATE FUNCTION LEFT_PAD(input_str VARCHAR(255), pad_length INT, pad_char CHAR(1)) RETURNS VARCHAR(255) BEGIN DECLARE i INT DEFAULT 0; DECLARE result VARCHAR(255); SET result = input_str; WHILE (LENGTH(result) + pad_length) > LENGTH(result) DO SET result = CONCAT(pad_char, result); SET i = i + 1; END WHILE; RETURN result; END$$ DELIMITER ;
这个自定义函数接受3个参数:要填充的字符串(input_str
)、填充长度(pad_length
)和填充字符(pad_char
)。函数将返回填充后的字符串。
现在,您可以在存储过程中调用此自定义LEFT_PAD()
函数。以下是一个示例存储过程,该过程使用LEFT_PAD()
函数将用户ID左侧填充零,直到达到指定的长度:
DELIMITER $$ CREATE PROCEDURE PadUserId(IN user_id INT, IN pad_length INT) BEGIN DECLARE padded_user_id VARCHAR(255); SET padded_user_id = LEFT_PAD(CAST(user_id AS CHAR), pad_length, '0'); SELECT padded_user_id; END$$ DELIMITER ;
要调用此存储过程,请使用以下命令:
CALL PadUserId(123, 6);
这将返回结果000123
。