使用mysql8支持的语法 写一个mysql函数 它可以处理我传入的字符串 字符串可能为空 也可能以英文逗号分隔 如果字符串是空值则返回空 如果字符串有值则将它以逗号分隔 并且返回结果中以http开头的第一条结果
时间: 2024-09-11 13:17:33 浏览: 41
在MySQL 8中,你可以创建一个用户自定义函数(UDF)来满足这个需求,使用MySQL的存储过程和字符串函数。以下是一个简单的示例,假设我们创建一个名为`get_first_http_link`的函数:
```sql
DELIMITER //
CREATE FUNCTION get_first_http_link(_input VARCHAR(255))
RETURNS VARCHAR(255)
BEGIN
IF _input IS NULL THEN
RETURN NULL;
END IF;
DECLARE link VARCHAR(255);
DECLARE separator CHAR(1) = ',';
DECLARE pos INT DEFAULT 0;
SET link = SUBSTRING_INDEX(SUBSTRING_INDEX(_input, separator, 1), 'http', -1);
RETURN COALESCE(link, ''); -- 返回非空链接,如果未找到以'http'开头的,则返回空字符串
END //
DELIMITER ;
```
在这个函数中,我们首先检查输入是否为空。如果不为空,我们就遍历输入字符串,查找第一个以'http'开头的子串。`SUBSTRING_INDEX`函数用于分割和提取部分字符串。
你可以像这样使用这个函数:
```sql
SELECT get_first_http_link('http://example.com, test, more http://site.com');
```
阅读全文